Ottenere un elenco di valori unici in Excel & estrarre le righe uniche

  • Condividi Questo
Michael Brown

Questa è la parte finale della serie Valori unici di Excel che mostra come ottenere un elenco di valori distinti/unici in colonna utilizzando una formula e come modificare tale formula per diversi set di dati. Imparerete anche come ottenere rapidamente un elenco distinto utilizzando il Filtro avanzato di Excel e come estrarre le righe uniche con Duplicate Remover.

In un paio di articoli recenti, abbiamo discusso diversi metodi per contare e trovare valori unici in Excel. Se avete avuto modo di leggere quelle esercitazioni, sapete già come ottenere un elenco unico o distinto identificando, filtrando e copiando. Ma questo è un modo un po' lungo, e di gran lunga non l'unico, per estrarre valori unici in Excel. È possibile farlo molto più velocemente utilizzando una formula speciale, e in un momentoVi mostrerò questa e un paio di altre tecniche.

    Suggerimento: per ottenere rapidamente valori univoci nell'ultima versione di Excel 365 che supporta gli array dinamici, utilizzate la funzione UNIQUE come spiegato nell'esercitazione sopra linkata.

    Come ottenere valori unici in Excel

    Per evitare qualsiasi confusione, prima di tutto dobbiamo accordarci su ciò che chiamiamo valori univoci in Excel. Valori unici sono i valori che esistono in un elenco una sola volta, ad esempio:

    Per estrarre un elenco di valori unici in Excel, utilizzare una delle seguenti formule.

    Array formula dei valori unici (da completare premendo Ctrl + Maiusc + Invio):

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1,$A$2:$A$10) + (COUNTIF($A$2:$A$10, $A$2:$A$10)1), 0)), "")

    Regolare formula dei valori unici (completata premendo Invio):

    =IFERROR(INDEX($A$2:$A$10, MATCH(0,INDEX(COUNTIF($B$1:B1, $A$2:$A$10)+(COUNTIF($A$2:$A$10, $A$2:$A$10)1),0,0), 0)), "")

    Nelle formule sopra riportate, si utilizzano i seguenti riferimenti:

    • A2:A10 - l'elenco delle fonti.
    • B1 - la cella superiore dell'elenco unico meno 1. In questo esempio, l'elenco unico inizia in B2 e quindi la formula contiene B1 (B2-1=B1). Se l'elenco unico inizia, ad esempio, nella cella C3, cambiare $B$1:B1 in $C$2:C2.

    Nota: poiché la formula fa riferimento alla cella sopra la prima cella dell'elenco unico, che di solito è l'intestazione della colonna (B1 in questo esempio), assicuratevi che l'intestazione abbia un nome unico che non compaia in nessun altro punto della colonna.

    In questo esempio, stiamo estraendo i nomi univoci dalla colonna A (più precisamente dall'intervallo A2:A20) e la seguente schermata mostra la formula dell'array in azione:

    La spiegazione dettagliata della logica della formula è riportata in una sezione separata; ecco come utilizzare la formula per estrarre valori univoci nei fogli di lavoro di Excel:

    • Modificare una delle formule in base al proprio set di dati.
    • Inserite la formula nella prima cella dell'elenco unico (B2 in questo esempio).
    • Se si utilizza la formula della matrice, premere Ctrl + Maiusc + Invio. Se si è optato per la formula normale, premere il tasto Invio come di consueto.
    • Copiare la formula fino a dove è necessario, trascinando la maniglia di riempimento. Poiché entrambe le formule dei valori unici sono incapsulate nella funzione IFERROR, è possibile copiare la formula fino alla fine della tabella e non ingombrerà i dati con alcun errore, indipendentemente dal numero di valori unici estratti.

    Come ottenere valori distinti in Excel (unico + 1a occorrenza duplicata)

    Come avrete già intuito dal titolo di questa sezione, valori distinti in Excel sono tutti i valori diversi di un elenco, cioè valori unici e prime istanze di valori duplicati. Ad esempio:

    Per ottenere un elenco distinto in Excel, utilizzare le seguenti formule.

    Array formula distinta (è necessario premere Ctrl + Maiusc + Invio):

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")

    Regolare formula distinta:

    =IFERROR(INDICE($A$2:$A$10, MATCH(0, INDEX(COUNTIF($B$1:B1, $A$2:$A$10), 0, 0), 0)), "")

    Dove:

    • A2:A10 è l'elenco delle fonti.
    • B1 è la cella sopra la prima cella dell'elenco distinto. In questo esempio, l'elenco distinto inizia nella cella B2 (è la prima cella in cui si inserisce la formula), quindi si fa riferimento a B1.

    Estrarre valori distinti in una colonna ignorando le celle vuote

    Se l'elenco di origine contiene celle vuote, la formula distinta appena discussa restituirebbe uno zero per ogni riga vuota, il che potrebbe essere un problema. Per risolvere questo problema, migliorate ulteriormente la formula:

    Formula della matrice da estrarre valori distinti, esclusi gli spazi vuoti :

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF($A$2:$A$10="",1,0), 0)), "")

    Ottenere un elenco di valori di testo distinti ignorando numeri e spazi vuoti

    In modo simile, è possibile ottenere un elenco di valori distinti escludendo le celle vuote e le celle con numeri :

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF(ISTEXT($A$2:$A$10)=FALSE,1,0), 0)), "")

    Come rapido promemoria, nelle formule precedenti, A2:A10 è l'elenco di origine e B1 è la cella immediatamente sopra la prima cella dell'elenco distinto.

    La seguente schermata mostra il risultato di entrambe le formule:

    Come estrarre valori distinti sensibili alle maiuscole e minuscole in Excel

    Quando si lavora con dati sensibili alle maiuscole e ai minuscoli, come password, nomi utente o nomi di file, può essere necessario ottenere un elenco di valori distinti sensibili alle maiuscole e ai minuscoli. A tale scopo, utilizzare la seguente formula di matrice, dove A2:A10 è l'elenco di origine e B1 è la cella sopra la prima cella dell'elenco distinto:

    Formula della matrice per ottenere valori distinti sensibili alle maiuscole e alle minuscole (richiede la pressione di Ctrl + Shift + Invio)

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, FREQUENCY(IF(EXACT($A$2:$A$10,TRANSPOSE($B$1:B1)), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10)), ""), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10))), 0)), "")

    Come funziona la formula unico / distinto

    Questa sezione è stata scritta appositamente per quegli utenti di Excel curiosi e attenti che non vogliono solo conoscere la formula, ma comprenderne appieno i dettagli.

    Va da sé che le formule per estrarre valori univoci e distinti in Excel non sono né banali né semplici, ma a un'analisi più attenta si può notare che tutte le formule si basano sullo stesso approccio: l'uso di INDEX/MATCH in combinazione con le funzioni COUNTIF o COUNTIF + IF.

    Per la nostra analisi approfondita, utilizziamo la formula dell'array che estrae un elenco di valori distinti, poiché tutte le altre formule discusse in questo tutorial sono miglioramenti o variazioni di questa formula di base:

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")

    Per cominciare, eliminiamo l'ovvia funzione IFERROR, che viene utilizzata con l'unico scopo di eliminare gli errori #N/A quando il numero di celle in cui è stata copiata la formula supera il numero di valori distinti nell'elenco di origine.

    E ora, analizziamo la parte centrale della nostra formula distinta:

    1. COUNTIF(intervallo, criteri) restituisce il numero di celle all'interno di un intervallo che soddisfano una condizione specificata.

      In questo esempio, COUNTIF($B$1:B1, $A$2:$A$10) restituisce una matrice di 1 e 0 a seconda che uno qualsiasi dei valori dell'elenco di origine ($A$2:$A$10) compaia da qualche parte nell'elenco distinto ($B$1:B1). Se il valore viene trovato, la formula restituisce 1, altrimenti 0.

      In particolare, nella cella B2, COUNTIF($B$1:B1, $A$2:$A$10) diventa:

      COUNTIF("Distinct", {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"})

      e ritorna:

      {0;0;0;0;0;0;0;0;0}

      perché nessuno degli elementi dell'elenco di origine ( criteri ) appare nella sezione gamma in cui la funzione cerca una corrispondenza. In questo caso, gamma ($B$1:B1) consiste in un solo elemento: "Distinto".

    2. MATCH(lookup_value, lookup_array, [match_type]) restituisce la posizione relativa del valore di ricerca nell'array.

    In questo esempio, il valore di ricerca è 0 e di conseguenza:

    MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)

    si trasforma in:

    MATCH(0, { 0 ;0;0;0;0;0;0;0;0},0)

    e restituisce

    perché la nostra funzione MATCH ottiene il primo valore che è esattamente uguale al valore di ricerca (come ricorderete, il valore di ricerca è 0).

  • INDEX(array, row_num, [column_num]) restituisce un valore in un array basato sui numeri di riga e (opzionalmente) di colonna specificati.
  • In questo esempio, INDEX($A$2:$A$10, 1)

    diventa:

    INDICE({"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}, 1)

    e restituisce "Ronnie".

    Quando la formula viene copiata lungo la colonna, l'elenco distinto ($B$1:B1) si espande perché il riferimento alla seconda cella (B1) è un riferimento relativo che cambia in base alla posizione relativa della cella in cui si sposta la formula.

    Quindi, quando viene copiato nella cella B3, COUNTIF($B$1: B1 , $A$2:$A$10) cambia in COUNTIF($B$1: B2 , $A$2:$A$10), e diventa:

    COUNTIF({"Distinct"; "Ronnie"}, {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}), 0)), "")

    e ritorna:

    {1;0;0;0;0;0;0;0;0}

    perché è stato trovato un "Ronnie" nell'intervallo $B$1:B2.

    E poi, MATCH(0,{1; 0 ;0;0;0;0;0;0},0) restituisce 2, perché 2 è la posizione relativa del primo 0 nell'array.

    E infine, INDICE($A$2:$A$10, 2) restituisce il valore della seconda riga, che è "David".

    Suggerimento: per comprendere meglio la logica della formula, è possibile selezionare diverse parti della formula nella barra della formula e premere F9 per vedere la valutazione di una parte selezionata:

    Se avete ancora difficoltà a capire la formula, potete consultare il seguente tutorial per una spiegazione dettagliata del funzionamento del collegamento INDEX/MATCH: INDEX & MATCH come migliore alternativa a VLOOKUP di Excel.

    Come già accennato, le altre formule discusse in questo tutorial si basano sulla stessa logica, con solo alcune modifiche:

    Formula dei valori unici - contiene un'ulteriore funzione COUNTIF che esclude dall'elenco unico tutti gli elementi che compaiono più di una volta nell'elenco di origine: COUNTIF($A$2:$A$10, $A$2:$A$10)1 .

    Formula dei valori distinti che ignora gli spazi vuoti - qui si aggiunge una funzione IF che impedisce di aggiungere celle vuote all'elenco dei valori distinti: IF($A$2:$A$13="",1,0) .

    Formula dei valori di testo distinti che ignora i numeri: si utilizza la funzione ISTEXT per verificare se un valore è di testo e la funzione IF per escludere tutti gli altri tipi di valori, comprese le celle vuote: IF(ISTEXT($A$2:$A$13)=FALSE,1,0) .

    Estrarre valori distinti da una colonna con il Filtro avanzato di Excel

    Se non si vuole perdere tempo a capire gli arcani delle formule dei valori distinti, è possibile ottenere rapidamente un elenco di valori distinti utilizzando il Filtro avanzato. I passaggi dettagliati sono riportati di seguito.

    1. Selezionare la colonna di dati da cui si desidera estrarre i valori distinti.
    2. Passare alla schermata Dati scheda> Ordinamento e filtro e fare clic sul pulsante Avanzato pulsante:

  • Nel Filtro avanzato selezionare le seguenti opzioni:
    • Controllo Copia in un'altra posizione pulsante di opzione.
    • Nel Gamma dell'elenco verificare che l'intervallo di origine sia visualizzato correttamente.
    • Nel Copia nella casella inserire la cella più alta dell'intervallo di destinazione. Si tenga presente che è possibile copiare i dati filtrati solo nella cella foglio attivo .
    • Selezionare la voce Solo record unici

  • Infine, fare clic sul pulsante OK e verificare il risultato:
  • Si prega di prestare attenzione al fatto che, sebbene l'opzione del filtro avanzato sia denominata " Solo record unici ", estrae valori distinti cioè i valori unici e la prima occorrenza di valori duplicati.

    Estrazione di righe uniche e distinte con Duplicate Remover

    Nella parte finale di questo tutorial, vi mostrerò la nostra soluzione per trovare ed estrarre valori distinti e unici nei fogli di Excel. Questa soluzione combina la versatilità delle formule di Excel e la semplicità del filtro avanzato. Inoltre, fornisce un paio di caratteristiche uniche, quali:

    • Trovare ed estrarre righe uniche / distinte in base ai valori di una o più colonne.
    • Trova , Evidenziare , e copia valori unici in qualsiasi altra posizione, nella stessa cartella di lavoro o in una diversa.

    Vediamo ora lo strumento Duplicate Remover in azione.

    Supponiamo di avere una tabella di riepilogo creata consolidando i dati di diverse altre tabelle. Ovviamente, questa tabella di riepilogo contiene molte righe duplicate e il vostro compito è quello di estrarre le righe uniche che appaiono nella tabella una sola volta, oppure le righe distinte che includono le occorrenze uniche e la prima duplicazione. In ogni caso, con il componente aggiuntivo Duplicate Remover il lavoro viene svolto in 5 rapidi passaggi.

    1. Selezionare una cella qualsiasi della tabella di origine e fare clic sul pulsante Rimuovi duplicati sul pulsante Dati Ablebits nella scheda Dedupe gruppo.

    La procedura guidata di rimozione dei duplicati verrà eseguita e selezionerà l'intera tabella. Quindi, è sufficiente fare clic su Avanti per passare alla fase successiva.

  • Selezionare il tipo di valore che si desidera trovare e fare clic su Avanti :
    • Unico
    • Unico +1° occorrenza (distinto)

    In questo esempio, si vuole estrarre righe uniche che appaiono nella tabella di origine solo una volta, quindi selezioniamo la tabella Unico opzione:

    Suggerimento: come si può vedere nella schermata precedente, sono disponibili anche 2 opzioni per valori duplicati , tenetelo a mente se avete bisogno di dedurre qualche altro foglio di lavoro.

  • Selezionare una o più colonne da controllare per i valori univoci.

    In questo esempio, vogliamo trovare righe uniche basate sui valori di tutte e 3 le colonne ( Numero d'ordine , Nome e Cognome ), quindi selezioniamo tutti.

  • Scegliere l'azione da eseguire sui valori unici trovati. Sono disponibili le seguenti opzioni:
    • Evidenziare i valori unici
    • Selezionare i valori univoci
    • Identificare in una colonna di stato
    • Copia in un'altra posizione

    Poiché stiamo estraendo righe uniche, selezionare Copia in un'altra posizione e quindi specificare dove si desidera copiarli esattamente: foglio attivo (selezionare la voce Posizione personalizzata e specificare la cella superiore dell'intervallo di destinazione), nuovo foglio di lavoro o nuova cartella di lavoro.

    In questo esempio, optiamo per il nuovo foglio:

  • Fare clic sul pulsante Finitura e il gioco è fatto!
  • Vi è piaciuto questo modo semplice e veloce per ottenere un elenco di valori o righe uniche in Excel? Se sì, vi invito a scaricare una versione di valutazione qui sotto e a provarla. Duplicate Remover e tutti gli altri strumenti per risparmiare tempo che abbiamo sono inclusi in Ultimate Suite for Excel.

    Download disponibili

    Trova valori unici in Excel - cartella di lavoro di esempio (file .xlsx)

    Ultimate Suite - versione di valutazione (file .exe)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.