Offro due versioni, a seconda che le celle vuote debbano essere mantenute. L'idea di base è la stessa:
- Scegli un personaggio che non è contenuto nella tua tabella (es. Un personaggio Unicode esotico accessibile tramite
CHAR
).
- Usalo nel
JOIN
comando per ciascuna delle tre colonne.
- Concatena i risultati, aggiungendo il personaggio in mezzo.
SPLIT
la stringa concatenata dello stesso carattere.
TRANSPOSE
il risultato.
Per esempio:
=TRANSPOSE( SPLIT( JOIN(CHAR(57344),A1:A) &CHAR(57344)& JOIN(CHAR(57344),B1:B) &CHAR(57344)& JOIN(CHAR(57344),C1:C), CHAR(57344) ) )
dove per unirmi / dividere, ho scelto il personaggio CHAR(57344)
, che è designato per uso privato e quindi non dovrebbe essere presente in nessun input valido.
La formula sopra rimuove le voci vuote , perché è questo che SPLIT
fa. Questo può essere utile se i tuoi dati non hanno spazi vuoti: ti salva il problema di tracciare dove si trova l'ultima riga dei dati. Altre volte, gli spazi vuoti dovrebbero essere preservati.
Per preservare gli spazi vuoti, seguo la risposta di Jacob Jan Tuinstra, tranne per il fatto che ho usato un altro uso privato Unicode invece dello spazio (chissà, forse hai delle celle che contengono solo uno spazio e vuoi mantenerle). Ciò comporta due passaggi aggiuntivi: dopo aver unito tutto come prima, lo uso SUBSTITUTE
per sostituire CHAR(57344)
con CHAR(57344)&CHAR(57345)
, quindi dividere come prima e sostituire CHAR(57345)
con stringa vuota.
=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(...joins... , CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "")))
Il risultato completo è simile al seguente (notare che ora specifica dove si trova l'ultima riga di dati):
=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(JOIN(CHAR(57344),A1:A9) &CHAR(57344)& JOIN(CHAR(57344),B1:B9) &CHAR(57344)& JOIN(CHAR(57344),C1:C9), CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "" )))
Un altro avvertimento: le stringhe in Fogli Google non possono superare i 50000 caratteri di lunghezza. Se i tuoi dati sono troppo grandi per funzionare con un approccio basato su stringhe, usa uno script ( questo è un buon punto di partenza).