Per anni, estrarre da una tabella solo le vendite di una zona, ordinarle o ottenere un elenco senza ripetizioni richiedeva filtri manuali, tabelle pivot o formule lunghissime da copiare riga per riga. Con le matrici dinamiche, un’unica formula scritta in una cella restituisce un intero intervallo di risultati, che si aggiorna quando cambiano i dati.
Qui vedrai come funzionano FILTRO, DATI.ORDINA e UNICI, come combinarle e cosa fare quando compare un errore di espansione. Tutti gli esempi usano la stessa tabella, così puoi riprodurli in un paio di minuti.
Cosa sono le matrici dinamiche e quale versione di Excel serve
Una matrice dinamica è il risultato di una formula che occupa più celle. Scrivi la formula nella prima cella ed Excel «espande» i risultati verso il basso e verso destra, su tutte le righe e le colonne necessarie. Se i dati di origine cambiano, l’intervallo dei risultati si adegua automaticamente.
Queste funzioni sono disponibili in Excel per Microsoft 365, Excel 2021 e versioni successive ed Excel per il Web. In Excel 2019 o versioni precedenti non esistono: se apri lì un file che le usa, vedrai l’errore #NOME? oppure valori fissi che non vengono più ricalcolati.
Prima di iniziare, tieni presenti tre regole:
- La formula si scrive solo nella prima cella. Il resto del risultato appare circondato da un bordo blu quando lo selezioni.
- Non puoi modificare né cancellare una singola cella dell’intervallo espanso. Per cambiare qualcosa, modifica la formula di origine.
- Per fare riferimento all’intero risultato da un’altra formula si usa l’operatore
#dopo la prima cella, per esempioF2#.
La tabella di esempio
Copia questi dati in un nuovo foglio, partendo dalla cella A1. Le formule delle sezioni seguenti lavorano sull’intervallo A2:D9.
| Cliente | Prodotto | Zona | Importo |
|---|---|---|---|
| Cliente A | Tastiera | Nord | 320 |
| Cliente B | Monitor | Sud | 890 |
| Cliente C | Mouse | Nord | 45 |
| Cliente A | Monitor | Est | 910 |
| Cliente D | Portatile | Nord | 1250 |
| Cliente B | Tastiera | Sud | 310 |
| Cliente E | Mouse | Est | 60 |
| Cliente C | Monitor | Nord | 870 |
FILTRO: estrarre solo le righe che soddisfano una condizione
La sintassi è FILTRO(matrice; includi; [se_vuoto]). Il primo argomento è l’intervallo da restituire, il secondo una condizione valutata riga per riga e il terzo, facoltativo, indica cosa mostrare se nessuna riga soddisfa la condizione.
Per ottenere tutte le vendite della zona Nord:
=FILTRO(A2:D9;C2:C9="Nord";"Nessun risultato")
Il risultato sono quattro righe complete (Cliente A, Cliente C, Cliente D e di nuovo Cliente C) con tutte e quattro le colonne.
Più condizioni contemporaneamente
Nell’argomento includi non funzionano E né O, perché queste funzioni restituiscono un solo valore e non uno per riga. Al loro posto, ogni condizione si scrive tra parentesi e le condizioni si combinano con operazioni:
- Perché siano soddisfatte tutte (logica E), moltiplica:
(C2:C9="Nord")*(D2:D9>500). - Perché ne sia soddisfatta almeno una (logica O), somma:
(C2:C9="Nord")+(C2:C9="Sud").
Vendite della zona Nord superiori a 500:
=FILTRO(A2:D9;(C2:C9="Nord")*(D2:D9>500);"Nessun risultato")
Restituisce due righe: Cliente D con 1250 e Cliente C con 870.
DATI.ORDINA: ordinare i risultati senza toccare i dati originali
La sintassi è DATI.ORDINA(matrice; [indice_ordinamento]; [ordine_ordinamento]; [per_col]). L’indice indica in base a quale colonna della matrice ordinare (1 è la prima) e l’ordine vale 1 per crescente, il valore predefinito, oppure -1 per decrescente.
=DATI.ORDINA(A2:D9;4;-1)
Restituisce l’intera tabella ordinata per importo dal più alto al più basso: prima Cliente D (1250), poi Cliente A (910), Cliente B (890) e così via fino a Cliente C con 45. La tabella originale mantiene il suo ordine.
Ordinare il risultato di un filtro
Poiché FILTRO restituisce una matrice, puoi passarla direttamente a DATI.ORDINA. Ottieni così le vendite del Nord dall’importo più alto al più basso:
=DATI.ORDINA(FILTRO(A2:D9;C2:C9="Nord");4;-1)
UNICI: elenchi senza ripetizioni con una sola formula
La sintassi è UNICI(matrice; [per_col]; [una_sola_volta]). Nella forma più semplice restituisce ogni valore distinto una sola volta, nell’ordine in cui compare per la prima volta:
=UNICI(B2:B9)
Il risultato è Tastiera, Monitor, Mouse e Portatile.
Valori che compaiono esattamente una volta
Il terzo argomento cambia il comportamento: con VERO restituisce solo i valori che non si ripetono mai. Nota il doppio punto e virgola, che lascia vuoto il secondo argomento:
=UNICI(A2:A9;;VERO)
Restituisce Cliente D e Cliente E, cioè i clienti con un solo acquisto.
Contare i valori distinti
Se racchiudi UNICI in CONTA.VALORI, ottieni quanti elementi diversi ci sono. Questa formula restituisce 3, perché ci sono tre zone diverse:
=CONTA.VALORI(UNICI(C2:C9))
Combinare le tre funzioni: un riepilogo per zona
La vera potenza emerge quando le annidi. Per esempio, per vedere quali prodotti sono stati venduti nella zona Sud, senza ripetizioni e in ordine alfabetico:
=DATI.ORDINA(UNICI(FILTRO(B2:B9;C2:C9="Sud")))
Il risultato è Monitor e Tastiera. Con la stessa logica puoi creare un piccolo riepilogo delle vendite per zona che cresce da solo:
- In F1 scrivi l’intestazione Zona e in G1 l’intestazione Totale.
- In F2 scrivi
=DATI.ORDINA(UNICI(C2:C9)). Compariranno Est, Nord e Sud. - In G2 scrivi
=SOMMA.SE(C2:C9;F2#;D2:D9). L’operatore#fa sì che la somma venga calcolata per ogni zona dell’elenco espanso. - Controlla i totali: Est 970, Nord 2485 e Sud 1200.
Se nei dati compare una nuova zona, l’elenco in F2 si allunga e la colonna G lo segue senza copiare alcuna formula.
Errori comuni e come risolverli
- #ESPANSIONE!: nell’intervallo in cui devono comparire i risultati c’è qualcosa (un valore, una formula o anche solo uno spazio) oppure ci sono celle unite. Selezionando la formula, un bordo tratteggiato indica la zona necessaria. Svuotala o sposta la formula.
- #CALC!: FILTRO non ha trovato alcuna riga e non hai indicato il terzo argomento. Aggiungi un testo come “Nessun risultato” oppure delle virgolette vuote.
- #VALORE!: la matrice e la condizione hanno un numero di righe diverso, per esempio A2:D9 rispetto a C2:C10.
- Formula dentro una tabella di Excel: le formule che si espandono non funzionano all’interno di una tabella creata con Ctrl+T. Posizionale all’esterno; possono comunque leggere i dati della tabella.
Quando serve pulire il file, non solo consultarlo
UNICI è perfetta per consultare i valori distinti, ma non elimina le righe ripetute dal file originale: la tabella di origine resta invariata. Se devi consegnare un file pulito, o usi una versione di Excel senza matrici dinamiche, puoi usare il nostro strumento gratuito per rimuovere i duplicati: carichi il file xlsx, xls, csv o ods e scarichi una copia senza righe ripetute. E se vuoi verificare quali righe sono state eliminate, puoi confrontare il file originale con quello pulito.
Conclusione
FILTRO, DATI.ORDINA e UNICI sostituiscono molte attività che prima richiedevano filtri manuali o formule copiate riga per riga. Scrivi una formula, lascia spazio libero per il risultato e sfrutta l’operatore # per concatenare i calcoli. Parti dagli esempi di questa guida applicandoli ai tuoi dati e, in pochi giorni, creerai report che si aggiornano da soli.
Domande frequenti
Posso usare FILTRO, DATI.ORDINA e UNICI in Excel 2016 o 2019?
No. Sono disponibili solo in Excel per Microsoft 365, Excel 2021 o successivo ed Excel per il Web. Nelle versioni precedenti puoi ottenere qualcosa di simile con il filtro avanzato (Dati › Avanzate), che permette di copiare solo i record univoci in un’altra posizione, anche se il risultato non si aggiorna da solo.
I risultati si aggiornano quando aggiungo nuove righe?
Si aggiornano quando cambiano i dati all’interno dell’intervallo indicato. Se la formula usa A2:D9 e scrivi una vendita nella riga 10, non la vedrà. Per evitarlo, trasforma i dati in tabella e usa riferimenti strutturati.
UNICI distingue tra maiuscole e minuscole?
No. «Nord» e «nord» sono considerati lo stesso valore. Invece uno spazio finale crea un valore diverso, quindi conviene eliminare gli spazi superflui con la funzione ANNULLA.SPAZI prima di cercare i valori univoci.
Come trasformo il risultato in valori fissi?
Seleziona l’intervallo espanso, copialo e usa Incolla speciale › Valori in un’altra posizione. Otterrai una copia statica che non dipende più dalla formula.
Prova i nostri strumenti gratuiti
Confronta, converti, unisci e pulisci i tuoi fogli di calcolo dal browser, senza installare nulla.