Sommario
Un modo rapido per trasformare un intervallo di celle in un'unica riga con l'aiuto dell'opzione TORO funzione.
Microsoft Excel 365 ha introdotto diverse nuove funzioni per eseguire varie manipolazioni con gli array. Con TOROW è possibile eseguire trasformazioni da intervallo a riga in un batter d'occhio. Ecco un elenco delle operazioni che questa nuova funzione può eseguire:
Funzione TOROW di Excel
La funzione TOROW di Excel viene utilizzata per convertire una matrice o un intervallo di celle in una riga.
La funzione richiede un totale di tre argomenti, di cui solo il primo è necessario.
TOROW(array, [ignore], [scan_by_column])Dove:
Array (obbligatorio) - una matrice o un intervallo da trasformare in una singola riga.
Ignorare (opzionale) - determina se ignorare gli spazi vuoti e/o gli errori. Può assumere uno dei seguenti valori:
- 0 o omesso (valore predefinito) - mantiene tutti i valori
- 1 - ignora gli spazi vuoti
- 2 - ignorare gli errori
- 3 - ignorare gli spazi vuoti e gli errori
Scan_per_colonna (opzionale) - definisce la modalità di scansione della matrice:
- FALSO o omesso (valore predefinito) - esegue la scansione orizzontale della matrice per riga.
- VERO - esegue la scansione dell'array verticalmente per colonna.
Suggerimenti:
- Per trasformare una matrice in una singola colonna, utilizzare la funzione TOCOL.
- Per eseguire la trasformazione inversa da riga a array, utilizzare la funzione WRAPCOLS per avvolgere in colonne o la funzione WRAPROWS per avvolgere l'array in righe.
- Per trasformare le righe in colonne, utilizzare la funzione TRANSPOSE.
Disponibilità della torretta
TOROW è una nuova funzione, supportata solo da Excel per Microsoft 365 (per Windows e Mac) e da Excel per il Web.
Formula TOROW di base in Excel
Per eseguire una semplice trasformazione da intervallo a riga, si utilizza la formula TOROW nella sua forma base. A tal fine, è necessario definire solo il primo argomento ( array ).
Ad esempio, per trasformare una matrice bidimensionale composta da 3 colonne e 3 righe in una singola riga, la formula è:
=TORNO(A3:C6)
La formula viene inserita in una sola cella (A10 nel nostro caso) e si riversa automaticamente in tutte le celle necessarie per contenere tutti i risultati. In termini di Excel, l'intervallo di output circondato da un sottile bordo blu viene chiamato intervallo di riversa.
Come funziona questa formula:
Per prima cosa, un intervallo di celle fornito viene trasformato in una matrice bidimensionale. Notate le colonne delimitate da virgole e le righe separate da punto e virgola:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Quindi, la funzione TOROW legge la matrice da sinistra a destra e la converte in una matrice orizzontale monodimensionale:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Il risultato va nella cella A10, da cui si riversa nella cella vicina a destra.
Trasforma l'intervallo in riga ignorando spazi vuoti ed errori
Per impostazione predefinita, la funzione TOROW conserva tutti i valori della matrice di origine, comprese le celle vuote e gli errori. Nell'output, i valori zero appaiono al posto delle celle vuote, il che può creare confusione.
A escludere gli spazi vuoti , impostare il ignorare a 1:
=TORRETTA(A3:C5, 1)
A ignorare gli errori , impostare il ignorare argomento a 2:
=TORRETTA(A3:C5, 2)
Per saltare entrambi, spazi vuoti ed errori , utilizzare 3 per il ignorare argomento:
=TORRETTA(A3:C5, 3)
L'immagine seguente mostra tutti e tre gli scenari in azione:
Leggere l'array in orizzontale o in verticale
Con il comportamento predefinito, la funzione TOROW elabora l'array orizzontalmente da sinistra a destra. Per scansionare i valori per colonna dall'alto verso il basso, si imposta il terzo argomento ( scan_by_colonna ) a VERO o a 1.
Ad esempio, per leggere l'intervallo di origine per riga, la formula in E3 è:
=TORNO(A3:C5)
Per eseguire la scansione dell'intervallo per colonna, la formula in E8 è:
=TORRETTA(A3:C5, ,TRUE)
In entrambi i casi, gli array risultanti hanno la stessa dimensione, ma i valori sono disposti in un ordine diverso.
Unire più intervalli in un'unica riga
Per combinare diversi intervalli non adiacenti in un'unica riga, occorre prima impilarli orizzontalmente o verticalmente in un unico array con l'aiuto di HSTACK o VSTACK, rispettivamente, e poi utilizzare la funzione TOROW per convertire l'array combinato in una riga.
A seconda della logica aziendale, una delle seguenti formule eseguirà il compito.
Impilare gli array in orizzontale e convertire per riga
Con il primo intervallo in A3:C4 e il secondo in A8:C9, la formula seguente impila i due intervalli orizzontalmente in un'unica matrice e poi la trasforma in una riga che legge i valori da sinistra a destra. Il risultato è in E3 nell'immagine sottostante.
=TOROW(HSTACK(A3:C4, A8:C9))
Impilare gli array in orizzontale e convertire per colonna
Per leggere l'array impilato verticalmente dall'alto verso il basso, si imposta il terzo parametro di TOROW su TRUE, come mostrato in E5 nell'immagine seguente:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Impilare gli array verticalmente e convertire per riga
Per aggiungere ogni matrice successiva alla parte inferiore della matrice precedente e leggere la matrice combinata in orizzontale, la formula in E12 è:
=TORRETTA(VSTACK(A3:C4, A8:C9))
Impilare gli array verticalmente e convertire per colonna
Per aggiungere ogni matrice successiva alla base della precedente e scansionare la matrice combinata verticalmente, la formula è:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Per comprendere meglio la logica, osservate il diverso ordine dei valori nelle matrici risultanti:
Estrarre i valori univoci da un intervallo in una riga
A partire da Microsoft Excel 2016, è disponibile una splendida funzione, denominata UNIQUE, che consente di ottenere facilmente valori univoci da una singola colonna o riga. Tuttavia, non è in grado di gestire gli array a più colonne. Per superare questa limitazione, è possibile utilizzare le funzioni UNIQUE e TOROW insieme.
Ad esempio, per estrarre tutti i valori diversi (distinti) dall'intervallo A2:C7 e inserire i risultati in una riga, la formula è:
=UNIQUE(TOROW(A2:C7), TRUE)
Poiché TOROW restituisce un array orizzontale unidimensionale, si imposta il secondo ( da_col ) di UNIQUE a TRUE per confrontare le colonne tra loro.
Se si desidera che i risultati siano disposti in ordine alfabetico, è necessario inserire la formula precedente nella funzione SORT:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Come per UNIQUE, l'opzione da_col di SORT è anch'esso impostato su TRUE.
Alternativa TOROW per Excel 365 - 2010
Nelle versioni di Excel in cui non è disponibile la funzione TOROW, è possibile trasformare un intervallo in una singola riga utilizzando una combinazione di alcune funzioni diverse che funzionano nelle versioni precedenti. Queste soluzioni sono più complesse, ma funzionano.
Per eseguire la scansione orizzontale dell'intervallo, la formula generica è:
INDICE( gamma , QUOZIENTE(COLONNA (A1)-1, COLONNE( gamma ))+1, MOD(COLONNA(A1)-1, COLONNE( gamma ))+1)Per eseguire la scansione verticale dell'intervallo, la formula generica è:
INDICE( gamma , MOD(COLONNA(A1)-1, COLONNE( gamma ))+1, QUOZIENTE(COLONNA (A1)-1, COLONNE( gamma ))+1)Per il nostro set di dati campione in A3:C5, le formule assumono questa forma:
Per eseguire la scansione dell'intervallo per riga:
=INDICE($A$3:$C$5, QUOZIENTE(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1, MOD(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1)
Questa formula è un'alternativa alla funzione TOROW con il terzo argomento impostato su FALSE o omesso:
=TOROW(A3:C5)
Per eseguire la scansione dell'intervallo per colonna:
=INDICE($A$3:$C$5, MOD(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1, QUOZIENTE(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1)
Questa formula è equivalente alla funzione TOROW con il terzo argomento impostato su VERO:
=TORRETTA(A3:C5, ,TRUE)
Si noti che, a differenza della funzione TOROW della matrice dinamica, queste formule tradizionali devono essere inserite in ogni cella in cui si desidera che appaiano i risultati. Nel nostro caso, la prima formula (per riga) va in E3 e viene copiata in M3. La seconda formula (per colonna) va in E8 e viene trascinata in M8.
Affinché le formule vengano copiate correttamente, blocchiamo l'intervallo utilizzando riferimenti assoluti ($A$3:$C$5). Va bene anche un intervallo con nome.
Se avete copiato le formule in più celle del necessario, nelle celle "extra" apparirà un errore #REF! Per risolvere il problema, avvolgete la formula nella funzione IFERROR in questo modo:
=IFERROR(INDEX($A$3:$C$5, QUOZIENTE(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1, MOD(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1), "")
Come funzionano queste formule
Di seguito è riportata una descrizione dettagliata della prima formula che dispone i valori per riga:
=INDICE($A$3:$C$5, QUOZIENTE(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1, MOD(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1)
Nel cuore della formula, utilizziamo la funzione INDICE per ottenere il valore di una cella in base alla sua posizione relativa nell'intervallo.
Il numero di riga è calcolato con questa formula:
QUOZIENTE(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1
L'idea è di produrre una sequenza di numeri ripetuti, come 1,1,1,2,2,2,3,3,3, ... dove ogni numero si ripete tante volte quante sono le colonne dell'intervallo di origine. Ecco come fare:
QUOTIENT restituisce la parte intera di una divisione.
Per numeratore , utilizziamo COLONNA(A1)-1, che restituisce un numero progressivo da 0 nella prima cella in cui è stata inserita la formula a n (numero totale di valori nell'intervallo meno 1) nell'ultima cella in cui è stata inserita la formula. In questo esempio, abbiamo 0 in E2 e 8 in M3.
Per denominatore Si usa COLUMNS($A$3:$C$5)), che restituisce un numero costante pari al numero di colonne dell'intervallo (3 nel nostro caso).
Di conseguenza, la funzione QUOTIENT restituisce 0 nelle prime 3 celle (E3:G3), alle quali si aggiunge 1, quindi il numero di riga è 1.
Per le 3 celle successive (H3:J3), QUOTIENT restituisce 1 e +1 fornisce il numero di riga 2. E così via.
Per calcolare il numero di colonna , si costruisce una sequenza numerica appropriata utilizzando la funzione MOD:
MOD(COLONNA(A1)-1, COLONNE($A$3:$C$5))+1
Poiché ci sono 3 colonne nel nostro intervallo, la sequenza deve essere simile a: 1,2,3,1,2,3,...
La funzione MOD restituisce il resto dopo la divisione.
In E3, MOD(COLONNA(A1)-1, COLONNA($A$3:$C$5))+
diventa
MOD(1-1, 3)+1)
e restituisce 1.
In F3, MOD(COLONNA(B1)-1, COLONNE($A$3:$C$5))+
diventa
MOD(2-1, 3)+1)
e restituisce 2.
Una volta stabiliti i numeri di riga e di colonna, INDEX recupera facilmente il valore all'intersezione della riga e della colonna.
In E3, INDEX($A$3:$C$5, 1, 1) restituisce un valore dalla prima riga e dalla prima colonna dell'intervallo di riferimento, ovvero dalla cella A3.
In F3, INDEX($A$3:$C$5, 1, 2) restituisce un valore dalla prima riga e dalla seconda colonna, cioè dalla cella B3.
E così via.
La seconda formula, che analizza l'intervallo per colonna, funziona in modo simile, con la differenza che si utilizza MOD per calcolare il numero di riga e QUOTIENT per calcolare il numero di colonna.
La funzione TOROW non funziona
Se la funzione TOROW produce un errore, è molto probabile che si tratti di uno di questi motivi:
#NOME? errore
Con la maggior parte delle funzioni di Excel, l'errore #NAME? indica chiaramente che il nome della funzione è stato scritto male. Con TOROW, può anche significare che la funzione non è disponibile in Excel. Se la vostra versione di Excel è diversa dalla 365, provate a usare un'alternativa a TOROW.
Errore #NUM
Un errore #NUM indica che l'array restituito non può essere inserito in una riga. Molto spesso questo accade quando si fa riferimento a intere colonne e/o righe invece che a un intervallo più piccolo.
Errore #SPILL
Nella maggior parte dei casi, un errore #SPILL indica che la riga in cui è stata inserita la formula non ha un numero sufficiente di celle vuote in cui riversare i risultati. Se le celle vicine sono visivamente vuote, verificare che non vi siano spazi o altri caratteri non di stampa. Per ulteriori informazioni, vedere Cosa significa errore #SPILL in Excel.
Ecco come si usa la funzione TOROW in Excel per convertire una matrice o un intervallo bidimensionale in una singola riga. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Funzione TOROW di Excel - esempi di formule (file .xlsx)