TOCOL e TOROW in Excel: trasformare matrici 2D in una colonna o riga
Link rapidi
La funzione TOCOL: trasformare una matrice bidimensionale in una singola colonna
La funzione TOROW: trasformare una matrice bidimensionale in una singola riga
Unire più matrici in una singola colonna o riga
Trasformare una matrice bidimensionale in una singola colonna di valori unici e ordinati
Trasformare una matrice bidimensionale di dati in una singola colonna o riga in Microsoft Excel semplifica il layout dei tuoi numeri e agevola operazioni come ordinamento e filtro. Per questo è utile conoscere bene come funzionano le funzioni TOCOL e TOROW.
Le funzioni TOCOL e TOROW sono disponibili in Excel 2024 o successivi, in Excel per Microsoft 365, in Excel per il web e nelle app mobili e tablet di Excel.
La funzione TOCOL: trasformare una matrice bidimensionale in una singola colonna
Come suggerisce il nome, la funzione TOCOL di Excel converte un array con più colonne e righe in una singola colonna monodimensionale.
Sintassi:
=TOCOL(a,[b],[c])Dove:
- a (obbligatorio) è la matrice da restituire come colonna;
- b (opzionale) definisce se il risultato deve ignorare tipi di valori specifici;
- c (opzionale) definisce se la scansione della matrice avviene per colonna o per riga.
Se ometti l’argomento b, la formula restituisce tutti i valori della matrice sorgente. Valori possibili per b:
- 1 = ignora vuoti;
- 2 = ignora errori;
- 3 = ignora vuoti e errori.
Se ometti l’argomento c, la scansione avviene per riga (da sinistra a destra, partendo dalla riga superiore). Se imposti c = TRUE, Excel scansiona la matrice per colonna (dall’alto verso il basso, partendo dalla colonna più a sinistra).
Immagina di essere il CEO di un’azienda retail e di avere un foglio in cui i tipi di negozio sono in colonna A, i Paesi nella riga 1 e il nome del responsabile in ogni cella di intersezione.

Obiettivo: trasformare l’intervallo dei nomi manager da B2 a F17 in una singola colonna, che userai come punto di partenza per un nuovo dataset.
Esempio minimo: nella cella vuota digita:
=TOCOL(seleziona l’intervallo di origine e chiudi la parentesi:
=TOCOL(B2:F17)
Premendo Invio, ottieni una colonna dinamica (dynamic array) di nomi che si estende automaticamente dalla cella dove hai scritto la formula:

Nota importante: il risultato è un array dinamico che si aggiorna al variare dei dati sorgente. Tuttavia, gli array dinamici non sono compatibili con le Tabelle di Excel. Se vuoi trasformare il risultato in una Tabella, seleziona le celle risultanti, premi Ctrl+C per copiare e usa Ctrl+Shift+V per incollare solo valori; a quel punto il risultato diventa statico e non si aggiornerà più automaticamente.
Se ometti b, il risultato include valori vuoti (mostrati come zero) ed eventuali errori. L’ordine di default (omettendo c) è riga per riga: prima tutti i manager della prima riga, poi della seconda, ecc. Per rimuovere vuoti ed errori usa b = 3:
=TOCOL(B2:F17,3)
Per cambiare la direzione di scansione e ottenere i valori ordinati per colonna (prima la prima colonna dall’alto verso il basso, poi la seconda, ecc.), imposta c = TRUE:
=TOCOL(B2:F17,3,TRUE)
La funzione TOROW: trasformare una matrice bidimensionale in una singola riga
TOROW funziona in modo speculare a TOCOL: converte una matrice in una singola riga monodimensionale.
Sintassi:
=TOROW(a,[b],[c])Argomenti come in TOCOL:
- a (obbligatorio) è la matrice da restituire come riga;
- b (opzionale) 1 = ignora vuoti, 2 = ignora errori, 3 = ignora vuoti e errori;
- c (opzionale) TRUE per scansionare per colonna, omesso per scansionare per riga.
Esempio: vuoi creare una riga contenente tutti i nomi dei responsabili (come intestazioni di colonna). In una cella vuota digita:
=TOROW(B2:F17)
Premendo Invio, ottieni tutti i nomi in una singola riga. Per ignorare vuoti ed errori e scansionare per colonna:
=TOROW(B2:F17,3,TRUE)
Per rendere i valori statici, copia e incolla come valori (Ctrl+C, Ctrl+Shift+V).
Unire più matrici in una singola colonna o riga
TOCOL e TOROW gestiscono una sola matrice alla volta. Per unire più matrici usa VSTACK (impila verticalmente) o HSTACK (affianca orizzontalmente) per creare prima una matrice combinata, quindi applica TOCOL/TOROW.
Esempio: hai due dataset, uno per l’Europa (B2:F17) e uno per l’Asia (B20:F35). Per impilarli verticalmente:
=VSTACK(B2:F17,B20:F35)
Per trasformare il risultato in una colonna unica:
=TOCOL(VSTACK(B2:F17,B20:F35),3)
HSTACK affianca le matrici orizzontalmente:
=HSTACK(B2:F17,B20:F35)
Se poi applichi TOCOL su HSTACK:
=TOCOL(HSTACK(B2:F17,B20:F35),3)ottieni un ordine diverso (prima tutti i manager di una tipologia, Europei poi Asiatici, e così via).
Ricorda che puoi combinare anche l’argomento c per cambiare la scansione (riga vs colonna).
Trasformare una matrice bidimensionale in una colonna di valori unici e ordinati
TOCOL e TOROW sono spesso annidati dentro altre funzioni di organizzazione dati come UNIQUE e SORT.
Esempio: una matrice con vincitori di medaglie d’oro su più anni. Per ottenere tutti i nomi in una colonna:
=TOCOL(B2:F17)Per rimuovere i duplicati:
=UNIQUE(TOCOL(B2:F17))Per ordinare alfabeticamente:
=SORT(UNIQUE(TOCOL(B2:F17)))Per ordinare in ordine inverso imposta l’argomento order della funzione SORT a -1:
=SORT(UNIQUE(TOCOL(B2:F17)),,-1)Se vuoi usare TOROW con UNIQUE e SORT, ricorda che gli argomenti di UNIQUE e SORT devono essere adattati per matrici orientate per riga:
=SORT(UNIQUE(TOROW(B2:F17),TRUE),,,TRUE)Quando usare TOCOL/TOROW e quando no
Importante: non sempre TOCOL/TOROW sono la scelta migliore. Ecco alcuni casi pratici:
Quando funziona bene:
- Hai bisogno di trasformare rapidamente un intervallo regolare in una lista per filtri, raggruppamenti o VLOOKUP/XLOOKUP.
- Vuoi un elenco dinamico che si aggiorna con i dati sorgente.
- Devi combinare più intervalli e poi deduplichi/ordini.
Quando non è ideale:
- Se lavori con tabelle Excel (ListObject): gli array dinamici non si incastrano nelle tabelle. Potrebbe essere necessario incollare i valori o usare Power Query.
- Se la sorgente è molto grande e ritieni che la ricomputazione dinamica impatti le prestazioni.
- Se i dati provengono da query esterne dove è meglio normalizzare direttamente alla fonte (Power Query o database).
Approcci alternativi e confronti veloci
- TRANSPOSE: capovolge righe e colonne ma non riduce 2D a 1D.
- Power Query: ottimo per trasformazioni ripetute, importare, pulire, deduplicare e caricare in modello dati; più robusto per ETL rispetto a formule dinamiche.
- PivotTable: utile quando vuoi aggregare, contare, sommare piuttosto che ottenere una lista piatta.
- Macro/VBA: quando serve automazione complessa o operare su Tabelle incompatibili con array dinamici.
Esempi pratici e mini-metodologia (SOP rapida)
Obiettivo: creare una colonna unica di nomi validi e ordinati da due fogli diversi (Europe/Asia).
Passaggi rapidi:
- Apri un foglio di lavoro nuovo.
- Verifica gli intervalli (es. Europe!B2:F17 e Asia!B2:F17).
- Nella cella A1 digita la formula:
=SORT(UNIQUE(TOCOL(VSTACK(Europe!B2:F17,Asia!B2:F17),3)))- Se vuoi che il risultato sia statico: seleziona, copia e incolla come valori.
- Controlla eventuali errori (#N/A, #VALUE!) e, se necessario, usa IFERROR per gestirli upstream.
Checklist di accettazione:
- L’elenco risultante contiene tutti i nomi previsti.
- Vuoti ed errori sono stati rimossi (se richiesto).
- L’elenco è ordinato secondo la richiesta.
- Il risultato è aggiornato dai dati sorgente (se non incollato come valori).
Test di accettazione e casi di prova
- Input con celle vuote: con b = 3 i vuoti non devono comparire.
- Input con errori: con b = 3 gli errori non devono comparire.
- Ripetizioni: UNIQUE(TOCOL(…)) non deve mostrare duplicati.
- Scansione per colonna: TOCOL(…, ,TRUE) deve restituire valori in ordine colonna-per-colonna.
- Unire più range con VSTACK: la dimensione dell’array risultante deve essere somma delle righe delle matrici originali.
Matrice di compatibilità e note di migrazione
- Excel per Microsoft 365: supportato;
- Excel 2024+: supportato;
- Excel per il web: supportato;
- App mobile/tablet: supportato;
- Excel 2019 e precedenti: NON supportato (funzioni non disponibili).
Se lavori in un ambiente misto con utenti che usano versioni pre-2024, valuta l’uso di Power Query o macro per portabilità.
Implicazioni su privacy e GDPR
Se la matrice contiene dati personali (es. nomi, mail, numeri identificativi), applica le stesse regole di protezione: minimizza l’esposizione, limita la condivisione del file e considera l’anonimizzazione se esporti i risultati verso terze parti.
Ruoli: checklist rapida
- CEO / Manager: verificare che l’elenco finale contenga tutte le unità e sia ordinato per reportistica.
- Data analyst: preferire formule dinamiche per iterazione rapida; se necessario esportare come valori per performance.
- IT/BI: se la trasformazione è ripetitiva e multi-utente, implementare la logica in Power Query o nel database.
Modelli formula utili (che puoi copiare)
- Elenco unico e ordinato da un singolo intervallo:
=SORT(UNIQUE(TOCOL(B2:F17)))- Elenco unico e ordinato da più intervalli (Europa e Asia):
=SORT(UNIQUE(TOCOL(VSTACK(B2:F17,B20:F35)),3))- Elenco riga unico ordinato usando TOROW:
=SORT(UNIQUE(TOROW(B2:F17),TRUE),,,TRUE)- Forzare la scansione per colonna e rimuovere errori/vuoti:
=TOCOL(B2:F17,3,TRUE)Errori comuni e come risolverli
- #SPILL!: assicurati che l’area di spill sia libera da celle non vuote.
- Dati in formato Tabella: gli array dinamici non possono occupare uno spazio all’interno di una Tabella Excel; copia e incolla valori o usa una tabella esterna.
- Prestazioni lente: riduci l’uso di calcoli volatili o valuta l’uso di Power Query per grandi dataset.
Mental model (modello mentale semplice)
Pensa a TOCOL come a “strappare” le righe di carta da un quaderno e metterle in pila (una sotto l’altra), e a TOROW come a “srotolare” la stessa pila su un unico rigo. VSTACK mette insieme più quaderni fianco a fianco (verticalmente), HSTACK li mette uno accanto all’altro (orizzontalmente).
Piccola galleria di casi limite
- Intervalli con formule di matrice dinamica annidate che producono riferimenti circolari: rivedere la logica.
- Celle con formati di testo non standard (spazi head/tail): normalizzare con TRIM prima di UNIQUE.
- Intervalli con tipi misti (numeri e testo): UNIQUE e SORT potrebbero ordinare in modo non intuitivo; convertire i tipi se necessario.
Breve glossario
- Array dinamico: risultato che “spill” (si propaga) automaticamente in celle contigue.
- Spill: comportamento di riempimento automatico di celle da una formula che restituisce più valori.
- VSTACK/HSTACK: funzioni per unire multiple matrici verticalmente/orizzontalmente.
Il concetto chiave è semplice: TOCOL e TOROW semplificano il reshaping (rimodellamento) dei dati dentro Excel. Per elaborazioni ripetute o dataset grandi, valuta Power Query o soluzioni server per migliori prestazioni e tracciabilità.

Microsoft 365 Personal
Sistema operativo
Windows, macOS, iPhone, iPad, Android
Prova gratuita
1 mese
Microsoft 365 include accesso alle app Office come Word, Excel e PowerPoint su fino a cinque dispositivi, 1 TB di spazio OneDrive e altro.
100 USD su Microsoft
Sommario
- TOCOL e TOROW convertono matrici 2D in colonne o righe 1D.
- Gli argomenti b e c servono rispettivamente a ignorare valori e a cambiare l’ordine di scansione.
- Combinali con VSTACK/HSTACK, UNIQUE e SORT per elenchi unici e ordinati o per unire più intervalli.
- Per processi ripetuti o portabilità preferisci Power Query; per compatibilità con versioni vecchie usa soluzioni alternative.
Importante: prima di condividere liste derivate da dati personali, verifica requisiti di privacy e anonimizzazione.