Concatenare gruppi di celle

Anonimo
2016-10-03T10:09:45+00:00

Ciao,

in A1:A90 ho una serie casuale di 90 numeri.

Esempio:

89

56

45

12

23

ecc...

Suddivido questa serie casuale in 6 gruppi da 15 numeri.

Voglio selezionare a mia scelta uno o più gruppi in base a una cella contatore.

Esempio:

in B1 ho la cella contatore = 2

La cella contatore mi indica il secondo gruppo dei 90 numeri, pari a 15 numeri

Voglio concatenare i numeri da A16:A30 in un'unica cella, separati da uno spazio.

Una cosa tipo questa:

36&" "&45&" "&23&" "...ecc

Avrei pensato di fare =CONCATENA(SCEGLI(B1;1° gruppo; 2° gruppo;ecc) ma non mi riesce.

Qualche idea?

Uso Excel 2007

TNX

Alfax

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-10-03T20:53:52+00:00

Ciao Alfax,

la tua udf va bene...

Mi fa piacere!

Adesso immaginiamo di avere tanti intervalli di 90 numeri, disposti in modo orizzontale, ossia A1:A90; B1:B90, C1:C90, ecc:

Ho più celle contatore che mi indicano intervalli diversi.

Da Concat devo semplicemente modificare il mio intervallo?

Ci sarebbe un modo più veloce?

Ad esempio, l'intervallo generale è A1:AZ90

Celle contatore:

BB1 = 2

BB2 = 3

BB3 = 4

Si può fare?

Nella cella BC1, inmmetti la formula:

         =Concat(A$1:A$15;$BB1)

e trascina la formula verso basso e verso destra per riempire l'intervallo BC1:DB3

Potresti scaricare il mio file aggiornato Alfax20161003.xlsm a:

https://www.dropbox.com/s/5whmczaafmnti1b/Alfax2_20161003.xlsm?dl=0

In questo file si trova il tuo scenario originale su Foglio1 e la nuova disposizione su Foglio2.

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-10-03T12:18:27+00:00

Ciao Alfax,

in A1:A90 ho una serie casuale di 90 numeri.

Esempio:

89

56

45

12

23

ecc...

Suddivido questa serie casuale in 6 gruppi da 15 numeri.

Voglio selezionare a mia scelta uno o più gruppi in base a una cella contatore.

Esempio:

in B1 ho la cella contatore = 2

La cella contatore mi indica il secondo gruppo dei 90 numeri, pari a 15 numeri

Voglio concatenare i numeri da A16:A30 in un'unica cella, separati da uno spazio.

Una cosa tipo questa:

36&" "&45&" "&23&" "...ecc

Avrei pensato di fare =CONCATENA(SCEGLI(B1;1° gruppo; 2° gruppo;ecc) ma non mi riesce.

Qualche idea?

Data la mia inclinazioni, ormai ben note, vorrei proporre una semplice UDF (Funzione utente):   

'=========>>

Option Explicit

'--------->>

Function Concat(Rng As Range, _

                Optional Contatore = 0, _

                Optional sDelimiter = " ")

    Dim r As Range

    Dim arrIn As Variant, arrOut() As Variant

    Dim sStr As String

    Dim i As Long, iLen As Long, iOffset As Long

    Application.Volatile

    iLen = Rng.Cells.Count

    iOffset = IIf(Contatore = 0, 0, Contatore - 1) * iLen

    arrIn = Rng.Offset(iOffset).Value

    For i = 1 To UBound(arrIn)

        sStr = sStr & sDelimiter & arrIn(i, 1)

    Next i

    Concat = Mid(sStr, Len(sDelimiter) + 1)

End Function

'<<=========

La funzione ha un argomento di intervallo che definisce il primo blocco di celle nell'intervallo di interesse, verticalmente o orizzontalmente; un secondo argomento opzionale che definisce il numero del blocco di interesse e che può essere un indirizzo di cella, un numero o una funzione che restituisce un numero; e una terza argomento che definisce il delimitatore per i valori concatenati.

Quindi, per blocchi di 15 celle dell'intervallo A1:A90, il primo argomento sarà sempre A1: A15; analogamente, per blocchi di 10 celle, il valore dell'argomento sarebbe A1: A10.

Il secondo argomento è facoltativo e, se omesso, la funzione concatenerà il primo blocco di celle.

Il terzo argomento è anche facoltativo e, se omesso, la funzione utilizzerà un carattere di spazio come delimitatore.di default,

Tipicamente la funzione verrebbe utilizata come, ad esempio:

     =Concat(A1:A15;B2)

oppure

     =Concat(A1:A15;2; "-")

Potresti scaricare il mio file di prova Alfax20161003.xlsm a:

https://www.dropbox.com/s/36r74ozpauv0lwv/Alfax20161003.xlsm?dl=0

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-10-03T17:42:04+00:00

    che vi devo dire...ogni volta per me è sempre un'emozione passare di qui e vedere i miei problemi risolti...

    Molto esplicativa anche la nota di Roberto, che ovviamente condivido.

    Grazie e alla prossima :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-10-03T14:18:10+00:00

    Ciao Fratello,,

    Senza nulla togliere all'ottima soluzione in VBA di Fratello Norman, è interessante cosa ne dice Roberto qui:

    https://sites.google.com/site/e90e50/user/funzione-concatena-excel

    Ti ringrazio per il link.

    Sono al corrente dell'ottimo articolo di Roberto, e del suo sito in generale, ma i miei motivi principale per proporre una Udf sono stati condensati nella prima frase della mia risposta:

    Data la mia inclinazioni, ormai ben note, vorrei proporre una semplice UDF (Funzione utente):   

    Ho spesso la necessità di concatenare intervalli estesi e, in passato, ho spesso utilizzato le funzioni suggerite da Laurent Longre e Harlan Grove, ma più di recente ho avuto la tendenza ad adottare una mia UDF.

    Detto questo, Microsoft ha,  almeno in parte, affrontato la mancanza di una funzione per concatenare direttamente degli intervalli con l'introduzione della funzione Concat per Excel 2016. Tuttavia, avevo notato che Alfax ha indicato che sta usando Excel 2007.

    Grazie ancora.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-10-03T13:14:52+00:00

    Senza nulla togliere all'ottima soluzione in VBA di Fratello Norman, è interessante cosa ne dice Roberto qui:

    https://sites.google.com/site/e90e50/user/funzione-concatena-excel

    La risposta è stata utile?

    0 commenti Nessun commento