Sommario
L'esercitazione illustra come ottenere valori unici in Excel utilizzando la funzione UNIQUE e gli array dinamici. Imparerete una semplice formula per trovare valori unici in una colonna o in una riga, in più colonne, in base a condizioni e molto altro ancora.
Nelle versioni precedenti di Excel, estrarre un elenco di valori univoci era una sfida difficile. Abbiamo un articolo speciale che mostra come trovare gli univoci che si verificano una sola volta, estrarre tutti gli elementi distinti in un elenco, ignorare gli spazi vuoti e altro ancora. Ogni compito richiedeva l'uso combinato di diverse funzioni e di una formula di array su più righe che solo i guru di Excel possono comprendere appieno.
L'introduzione della funzione UNICA in Excel 365 ha cambiato tutto: ciò che prima era una scienza missilistica è diventato facile come l'ABC. Ora non è necessario essere esperti di formule per ottenere valori unici da un intervallo, in base a uno o più criteri, e disporre i risultati in ordine alfabetico. Il tutto con formule semplici che tutti possono leggere e adattare alle proprie esigenze.
Funzione UNICA di Excel
La funzione UNIQUE di Excel restituisce un elenco di valori univoci da un intervallo o da una matrice e funziona con qualsiasi tipo di dati: testo, numeri, date, orari, ecc.
La funzione è classificata tra le funzioni degli Array dinamici. Il risultato è un array dinamico che si riversa automaticamente nelle celle vicine in verticale o in orizzontale.
La sintassi della funzione UNIQUE di Excel è la seguente:
UNIQUE(array, [by_col], [exactly_once])Dove:
Array (obbligatorio) - l'intervallo o l'array da cui restituire i valori univoci.
Per_col (opzionale) - un valore logico che indica come confrontare i dati:
- VERO - confronta i dati tra le colonne.
- FALSO o omesso (valore predefinito) - confronta i dati tra le righe.
Esattamente_una_volta (opzionale) - un valore logico che definisce quali valori sono considerati unici:
- TRUE - restituisce valori che si verificano una sola volta, che è la nozione di univocità del database.
- FALSO o omesso (valore predefinito) - restituisce tutti i valori distinti (diversi) nell'intervallo o nella matrice.
Nota: attualmente la funzione UNIQUE è disponibile solo in Excel per Microsoft 365 e Excel 2021. Excel 2019, 2016 e precedenti non supportano le formule di array dinamico, pertanto la funzione UNIQUE non è disponibile in queste versioni.
Formula di base UNICA in Excel
Di seguito è riportata una formula di Excel per valori unici nella sua forma più semplice.
L'obiettivo è estrarre un elenco di nomi univoci dall'intervallo B2:B10. A tale scopo, inseriamo la seguente formula in D2:
=UNICO(B2:B10)
Si noti che il secondo e il terzo argomento sono stati omessi perché i valori predefiniti funzionano perfettamente nel nostro caso: stiamo confrontando le righe tra loro e vogliamo restituire tutti i nomi diversi nell'intervallo.
Quando si preme il tasto Invio per completare la formula, Excel visualizza il primo nome trovato in D2, riversando gli altri nomi nelle celle sottostanti. Il risultato è che tutti i valori univoci sono presenti in una colonna:
Nel caso in cui i dati riguardino le colonne da B2 a I2, impostare il secondo argomento su TRUE per confrontare le colonne tra loro:
=UNIQUE(B2:I2,TRUE)
Digitate la formula di cui sopra in B4, premete Invio e i risultati si riverseranno orizzontalmente nelle celle a destra, ottenendo così i valori unici in una riga:
Suggerimento: per trovare valori univoci in un array a più colonne e restituirli in una colonna o riga, utilizzare UNIQUE insieme alla funzione TOCOL o TOROW, come mostrato negli esempi seguenti:
- Estrarre i valori univoci da un intervallo di più colonne in una colonna
- Estrarre i valori univoci da un intervallo di più colonne in una riga
Funzione UNICA di Excel - suggerimenti e note
UNIQUE è una nuova funzione e, come altre funzioni di array dinamici, presenta alcune specificità che è bene conoscere:
- Se la matrice restituita da UNIQUE è il risultato finale (cioè non viene passata a un'altra funzione), Excel crea dinamicamente un intervallo di dimensioni adeguate e lo popola con i risultati. La formula deve essere inserita solo in una cella È importante che ci siano abbastanza celle vuote in basso e/o a destra della cella in cui si inserisce la formula, altrimenti si verifica un errore #SPILL.
- I risultati aggiornamento automatico quando i dati di origine vengono modificati. Tuttavia, le nuove voci aggiunte al di fuori dell'array di riferimento non vengono incluse nella formula, a meno che non si modifichi il parametro array Se si vuole il riferimento array per rispondere automaticamente al ridimensionamento dell'intervallo di origine, quindi convertire l'intervallo in una tabella di Excel e usare riferimenti strutturati, oppure creare un intervallo dinamico con nome.
- Le matrici dinamiche tra diversi file di Excel funzionano solo quando entrambe le cartelle di lavoro sono aperte Se la cartella di lavoro di origine è chiusa, una formula UNICA collegata restituirà un errore #REF!
- Come altre funzioni di array dinamici, UNIQUE può essere utilizzata solo all'interno di un normale file gamma Quando viene inserito nelle tabelle di Excel, restituisce un errore #SPILL!
Come trovare valori unici in Excel - esempi di formule
Gli esempi che seguono mostrano alcuni usi pratici della funzione UNIQUE in Excel. L'idea principale è quella di estrarre valori unici o rimuovere i duplicati, a seconda del punto di vista, nel modo più semplice possibile.
Estrarre valori unici che si verificano una sola volta
Per ottenere un elenco di valori che compaiono esattamente una volta nell'intervallo specificato, impostare il terzo argomento di UNIQUE su TRUE.
Ad esempio, per estrarre una volta i nomi presenti nell'elenco dei vincitori, utilizzare questa formula:
=UNIQUE(B2:B10,,TRUE)
Dove B2:B10 è l'intervallo della sorgente e il secondo argomento ( da_col ) è FALSO o omesso perché i nostri dati sono organizzati in righe.
Trovare valori distinti che ricorrono più di una volta
Se l'obiettivo è opposto, cioè si vuole ottenere un elenco di valori che compaiono più volte in un determinato intervallo, si può utilizzare la funzione UNIQUE insieme a FILTRO e COUNTIF:
UNICO(FILTRO( gamma , COUNTIF( gamma , gamma )>1))Ad esempio, per estrarre nomi diversi che ricorrono più volte in B2:B10, si può usare questa formula:
=UNIQUE(FILTRO(B2:B10, COUNTIF(B2:B10, B2:B10)>1))
Come funziona questa formula:
Al centro della formula, la funzione FILTRO filtra le voci duplicate in base al conteggio delle occorrenze, restituito dalla funzione COUNTIF. Nel nostro caso, il risultato di COUNTIF è questo array di conteggi:
{4;1;3;4;4;1;3;4;3}
L'operazione di confronto (>1) cambia l'array di cui sopra in valori VERO e FALSO, dove VERO rappresenta gli elementi che compaiono più di una volta:
{VERO; FALSO; VERO; VERO; VERO; FALSO; VERO; VERO; VERO; VERO; VERO}.
Questa matrice viene consegnata a FILTER come array includere che indica alla funzione quali valori includere nell'array risultante:
{Andrew"; "David"; "Andrew"; "Andrew"; "David"; "Andrew"; "David".}
Come si può notare, sopravvivono solo i valori corrispondenti a VERO.
L'array di cui sopra va alla cartella array di UNIQUE e, dopo aver rimosso i duplicati, produce il risultato finale:
{Andrew"; "David".}
Suggerimento: in modo simile, è possibile filtrare i valori unici che si verificano più di due volte (>2), più di tre volte (>3) e così via.
Trova valori unici in più colonne (righe uniche)
Quando si desidera confrontare due o più colonne e restituire i valori univoci tra di esse, includere tutte le colonne di destinazione nel metodo array argomento.
Per esempio, per restituire il nome (colonna A) e il cognome (colonna B) dei vincitori, inseriamo questa formula in E2:
=UNICO(A2:B10)
Premendo il tasto Invio si ottengono i seguenti risultati:
Per ottenere righe uniche , cioè le voci con la combinazione unica di valori nelle colonne A, B e C, questa è la formula da utilizzare:
=UNICO(A2:C10)
Incredibilmente semplice, non è vero? :)
Ottenere un elenco di valori univoci ordinati in ordine alfabetico
Come si fa di solito ad ordinare in ordine alfabetico in Excel? Utilizzando la funzione di ordinamento o filtro incorporata. Il problema è che bisogna riordinare ogni volta che i dati di origine cambiano, perché a differenza delle formule di Excel che vengono ricalcolate automaticamente ad ogni modifica del foglio di lavoro, le funzioni devono essere riapplicate manualmente.
Con l'introduzione delle funzioni di array dinamici, questo problema è stato eliminato: è sufficiente modificare la funzione SORT con una formula UNIQUE regolare, come questa:
SORT(UNIQUE(array))Ad esempio, per estrarre i valori univoci nelle colonne da A a C e disporre i risultati da A a Z, utilizzare questa formula:
=SORT(UNIQUE(A2:C10))
Rispetto all'esempio precedente, l'output è molto più facile da percepire e da utilizzare. Ad esempio, possiamo vedere chiaramente che Andrew e David sono stati vincitori in due sport diversi.
Suggerimento: in questo esempio, i valori della prima colonna sono stati ordinati dalla A alla Z. Queste sono le impostazioni predefinite della funzione SORT, quindi il parametro opzionale ordinamento_indice e ordine_di_ordine Se si desidera ordinare i risultati in base a qualche altra colonna o in un ordine diverso (da Z ad A o dal più alto al più piccolo), impostare il secondo e il terzo argomento come spiegato nel tutorial sulla funzione SORT.
Trova i valori univoci in più colonne e concatena in un'unica cella
Quando si effettua una ricerca su più colonne, per impostazione predefinita, la funzione UNICA di Excel produce ogni valore in una cella separata. Forse è più comodo avere i risultati in un'unica cella?
Per ottenere questo risultato, invece di fare riferimento all'intero intervallo, utilizzare l'ampersand (&) per concatenare le colonne e inserire il delimitatore desiderato tra di esse.
A titolo di esempio, concateniamo i nomi in A2:A10 e i cognomi in B2:B10, separando i valori con un carattere di spazio (" "):
=UNIQUE(A2:A10&" "&B2:B10)
Il risultato è un elenco di nomi completi in una colonna:
Ottenere un elenco di valori unici in base ai criteri
Per estrarre i valori univoci con condizione, utilizzare le funzioni UNIQUE e FILTER di Excel insieme:
- La funzione FILTRO limita i dati solo ai valori che soddisfano la condizione.
- La funzione UNIQUE rimuove i duplicati dall'elenco filtrato.
Ecco la versione generica della formula dei valori unici filtrati:
UNIQUE(FILTRO(array, intervallo_di_criteri = criteri ))Per questo esempio, otteniamo un elenco di vincitori di uno sport specifico. Per cominciare, inseriamo lo sport di interesse in una cella, ad esempio F1. Quindi, utilizziamo la formula seguente per ottenere i nomi unici:
=UNIQUE(FILTRO(A2:B10, C2:C10=F1))
Dove A2:B10 è un intervallo per la ricerca di valori univoci e C2:C10 è l'intervallo da controllare per i criteri.
Filtrare i valori unici in base a più criteri
Per filtrare i valori unici con due o più condizioni, utilizzare le espressioni mostrate di seguito per costruire i criteri richiesti per la funzione FILTRO:
UNIQUE(FILTRO(array, ( criterio_range1 = criteri1 ) * ( criterio_range2 = criteri2 )))Il risultato della formula è un elenco di voci uniche per le quali tutte le condizioni specificate sono VERE. In termini di Excel, questa è chiamata logica AND.
Per vedere la formula in azione, otteniamo un elenco di vincitori unici per lo sport in G1 (criterio 1) e sotto l'età in G2 (criterio 2).
Con l'intervallo di origine in A2:B10, gli sport in C2:C10 (criterio_range 1) e le età in D2:D10 (criterio_range 2), la formula assume questa forma:
=UNIQUE(FILTRO(A2:B10, (C2:C10=G1) * (D2:D10
E restituisce esattamente i risultati che stiamo cercando:
Come funziona questa formula:
Ecco una spiegazione di alto livello della logica della formula:
Nel includere della funzione FILTER, si forniscono due o più coppie intervallo/criteri. Il risultato di ogni espressione logica è una matrice di valori VERO e FALSO. La moltiplicazione delle matrici costringe i valori logici a diventare numeri e produce una matrice di 1 e 0. Poiché la moltiplicazione per zero dà sempre zero, solo le voci che soddisfano tutte le condizioni hanno 1 nella matrice finale. Il FILTERfiltra gli elementi corrispondenti a 0 e consegna i risultati a UNIQUE.
Per ulteriori informazioni, vedere FILTRO con criteri multipli utilizzando la logica AND.
Filtrare i valori unici con più criteri OR
Per ottenere un elenco di valori univoci basati su criteri OR multipli, cioè quando questo o quel criterio è VERO, sommare le espressioni logiche invece di moltiplicarle:
UNIQUE(FILTRO(array, ( criterio_range1 = criteri1 ) + ( criterio_range2 = criteri2 )))Ad esempio, per mostrare i vincitori in una delle due categorie Calcio o Hockey è possibile utilizzare questa formula:
=UNIQUE(FILTRO(A2:B10, (C2:C10="Calcio") + (C2:C10="Hockey")))
Se necessario, è possibile inserire i criteri in celle separate e fare riferimento a tali celle come mostrato di seguito:
=UNIQUE(FILTRO(A2:B10, (C2:C10=G1) + (C2:C10=G2)))
Come funziona questa formula:
Proprio come quando si verificano più criteri AND, si inseriscono diverse espressioni logiche nell'elemento includere della funzione FILTER, ognuno dei quali restituisce un array di valori TRUE e FALSE. Quando questi array vengono sommati, gli elementi per i quali uno o più criteri sono TRUE avranno 1, mentre gli elementi per i quali tutti i criteri sono FALSE avranno 0. Di conseguenza, ogni voce che soddisfa una singola condizione viene inserita nell'array che viene passato a UNIQUE.
Per ulteriori informazioni, vedere FILTRO con criteri multipli utilizzando la logica OR.
Ottenere valori unici in Excel ignorando gli spazi vuoti
Se si lavora con un insieme di dati che contiene degli spazi vuoti, è probabile che un elenco di univoci ottenuto con una formula regolare abbia una cella vuota e/o un valore nullo. Questo accade perché la funzione UNIQUE di Excel è progettata per restituire tutti i valori distinti in un intervallo, compresi gli spazi vuoti. Quindi, se l'intervallo di origine ha sia zeri che celle vuote, l'elenco di univoci conterrà 2 zeri, uno dei quali rappresenta uno spazio vuoto.Inoltre, se i dati di origine contengono stringhe vuote restituite da qualche formula, l'elenco uique includerà anche una stringa vuota ("") che visivamente assomiglia a una cella vuota:
Per ottenere un elenco di valori unici senza spazi vuoti, è necessario procedere in questo modo:
- Filtrare le celle vuote e le stringhe vuote utilizzando la funzione FILTRO.
- Utilizzare la funzione UNIQUE per limitare i risultati ai soli valori unici.
In forma generica, la formula si presenta come segue:
UNICO(FILTRO( gamma , gamma ""))In questo esempio, la formula in D2 è:
=UNIQUE(FILTRO(B2:B12, B2:B12""))
Come risultato, Excel restituisce un elenco di nomi unici senza celle vuote:
Nota: se i dati originali contengono zeri , un valore zero sarà incluso nell'elenco unico.
Trovare valori unici in colonne specifiche
A volte si desidera estrarre valori univoci da due o più colonne non adiacenti tra loro. A volte si desidera anche riordinare le colonne nell'elenco risultante. Entrambi i compiti possono essere svolti con l'aiuto della funzione SCEGLI.
UNIQUE(CHOOSE({1,2,...}, gamma1 , gamma2 ))Dalla nostra tabella di esempio, supponiamo di voler ottenere un elenco di vincitori in base ai valori delle colonne A e C e di disporre i risultati in questo ordine: prima uno sport (colonna C) e poi il nome di uno sportivo (colonna A). Per farlo, costruiamo questa formula:
=UNIQUE(CHOOSE({1,2}, C2:C10, A2:A10))
E ottenere il seguente risultato:
Come funziona questa formula:
La funzione CHOOSE restituisce una matrice bidimensionale di valori dalle colonne specificate e, nel nostro caso, inverte anche l'ordine delle colonne.
{Pallacanestro", "Andrew"; "Pallacanestro", "Betty"; "Pallavolo", "David"; "Pallacanestro", "Andrew"; "Hockey", "Andrew"; "Calcio", "Robert"; "Pallavolo", "David"; "Hockey", "Andrew"; "Pallacanestro", "David"}.
Dall'array precedente, la funzione UNIQUE restituisce un elenco di record unici.
Trovare valori unici e gestire gli errori
Le formule UNICHE di cui abbiamo parlato in questo tutorial funzionano perfettamente... a patto che ci sia almeno un valore che soddisfi i criteri specificati. Se la formula non trova nulla, si verifica un errore #CALC!
Per evitare che ciò accada, è sufficiente racchiudere la formula nella funzione IFERROR.
Ad esempio, se non vengono trovati valori univoci che soddisfano i criteri, è possibile non visualizzare nulla, ovvero una stringa vuota (""):
=IFERROR(UNIQUE(FILTRO(A2:B10, (C2:C10=G1) * (D2:D10
Oppure potete informare chiaramente gli utenti che non sono stati trovati risultati:
=IFERROR(UNIQUE(FILTRO(A2:B10, (C2:C10=G1) * (D2:D10
La funzione UNIQUE di Excel non funziona
Come si è visto, la comparsa della funzione UNIQUE ha reso incredibilmente facile la ricerca di valori univoci in Excel. Se improvvisamente la vostra formula dà luogo a un errore, è molto probabile che si tratti di uno dei seguenti.
#NOME? errore
Si verifica se si utilizza una formula UNICA in una versione di Excel in cui questa funzione non è supportata.
Attualmente la funzione UNICA è disponibile solo in Excel 365 e 2021. Se avete una versione diversa, potete trovare una soluzione adeguata in questa esercitazione: Come ottenere valori unici in Excel 2019, Excel 2016 e precedenti.
L'errore #NAME? nelle versioni supportate indica che il nome della funzione è scritto male.
#Errore di SPILL
Si verifica se una o più celle dell'intervallo di versamento non sono completamente vuote.
Per risolvere l'errore, è sufficiente cancellare o eliminare le celle non vuote. Per vedere esattamente quali celle sono d'intralcio, fare clic sull'indicatore di errore, quindi fare clic su Selezionare le cellule che ostacolano Per ulteriori informazioni, vedere Errore #SPILL! in Excel - cause e soluzioni.
Ecco come trovare i valori unici in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Esempi di formule per valori unici in Excel (file .xlsx)