Unire due liste senza duplicati

Una situazione classica: hai due liste che devono essere unite in una sola. Inoltre nelle liste iniziali possono esserci sia elementi univoci che corrispondenti (sia tra le liste che all'interno), ma in uscita è necessario ottenere una lista senza duplicati (ripetizioni):

Unire due liste senza duplicati

Diamo un'occhiata tradizionalmente a diversi modi per risolvere un problema così comune: dal primitivo "sulla fronte" al più complesso, ma elegante.

Metodo 1: rimuovere i duplicati

Puoi risolvere il problema nel modo più semplice: copia manualmente gli elementi di entrambi gli elenchi in uno e quindi applica lo strumento al set risultante. Rimuovi duplicati dalla scheda Dati (Dati — Rimuovi duplicati):

Unire due liste senza duplicati

Ovviamente, questo metodo non funzionerà se i dati negli elenchi di origine cambiano spesso: dovrai ripetere l'intera procedura dopo ogni modifica. 

Metodo 1a. tabella pivot

Questo metodo è, infatti, una logica continuazione del precedente. Se gli elenchi non sono molto grandi e il numero massimo di elementi in essi è noto in anticipo (ad esempio non più di 10), puoi combinare due tabelle in una tramite collegamenti diretti, aggiungere una colonna con quelli a destra e costruire una tabella riassuntiva basata sulla tabella risultante:

Unire due liste senza duplicati

Come sai, la tabella pivot ignora le ripetizioni, quindi all'output otterremo un elenco combinato senza duplicati. La colonna ausiliaria con 1 è necessaria solo perché Excel può creare tabelle di riepilogo contenenti almeno due colonne.

Quando gli elenchi originali vengono modificati, i nuovi dati andranno alla tabella combinata tramite collegamenti diretti, ma la tabella pivot dovrà essere aggiornata manualmente (fare clic con il pulsante destro del mouse - Aggiorna e salva). Se non è necessario ricalcolare al volo, è meglio utilizzare altre opzioni.

Metodo 2: formula di matrice

Puoi risolvere il problema con le formule. In questo caso, il ricalcolo e l'aggiornamento dei risultati avverrà automaticamente e istantaneamente, subito dopo la modifica delle liste originarie. Per comodità e brevità, diamo i nomi alle nostre liste. Lista 1 и Lista 2utilizzando Nome Manager linguetta formula (Formule — Gestore nomi — Crea):

Unire due liste senza duplicati

Dopo aver nominato, la formula di cui abbiamo bisogno sarà simile a questa:

Unire due liste senza duplicati

A prima vista, sembra inquietante, ma, in realtà, non tutto è così spaventoso. Permettetemi di espandere questa formula su più righe usando la combinazione di tasti Alt+Invio e il rientro con gli spazi, come abbiamo fatto, ad esempio qui:

Unire due liste senza duplicati

La logica qui è la seguente:

  • La formula INDEX(List1;MATCH(0;COUNTIF($E$1:E1;List1); 0) seleziona tutti gli elementi univoci dal primo elenco. Non appena si esauriscono, inizia a dare un errore #N/D:

    Unire due liste senza duplicati

  • La formula INDEX(List2;MATCH(0;COUNTIF($E$1:E1;List2); 0)) estrae gli elementi univoci dal secondo elenco allo stesso modo.
  • Annidate l'una nell'altra, due funzioni IFERROR implementano l'output prima di quelle univoche dalla lista-1, e poi dalla lista-2 una dopo l'altra.

Si noti che questa è una formula di matrice, cioè dopo aver digitato, deve essere inserita in una cella che non è ordinaria entrare, ma con una scorciatoia da tastiera Ctrl+Shift+entrare e quindi copia (trascina) fino alle celle figlie con un margine.

Nella versione inglese di Excel, questa formula è simile a:

=SEERROR(SEERROR(INDEX(Lista1, CONFRONTA(0, COUNTIF($E$1:E1, List1), 0)), INDEX(Lista2, CONFRONTA(0, COUNTIF($E$1:E1, List2), 0)) ), “”) 

Lo svantaggio di questo approccio è che le formule di matrice rallentano notevolmente il lavoro con il file se le tabelle di origine hanno un numero elevato (diverse centinaia o più) di elementi. 

Metodo 3. Query di alimentazione

Se i tuoi elenchi di origine hanno un numero elevato di elementi, ad esempio diverse centinaia o migliaia, invece di una formula di matrice lenta, è meglio usare un approccio fondamentalmente diverso, ovvero gli strumenti del componente aggiuntivo Power Query. Questo componente aggiuntivo è integrato in Excel 2016 per impostazione predefinita. Se hai Excel 2010 o 2013, puoi scaricarlo e installarlo separatamente (gratuitamente).

L'algoritmo delle azioni è il seguente:

  1. Apri una scheda separata del componente aggiuntivo installato Power Query (se hai Excel 2010-2013) o vai semplicemente alla scheda Dati (se hai Excel 2016).
  2. Selezionare la prima lista e premere il pulsante Dalla tabella/intervallo (Da intervallo/tabella). Alla domanda sulla creazione di un "tavolo intelligente" dalla nostra lista, siamo d'accordo:

    Unire due liste senza duplicati

  3. Si apre la finestra dell'editor di query, in cui è possibile visualizzare i dati caricati e il nome della query Tabella 1 (puoi cambiarlo con il tuo se vuoi).
  4. Fare doppio clic sull'intestazione della tabella (word Lista 1) e rinominarlo in qualsiasi altro (ad esempio Persone). Cosa nominare esattamente non è importante, ma il nome di fantasia deve essere ricordato, perché. dovrà essere riutilizzato in seguito durante l'importazione della seconda tabella. L'unione di due tabelle in futuro funzionerà solo se le intestazioni delle colonne corrispondono.
  5. Espandi l'elenco a discesa nell'angolo in alto a sinistra chiudi e scarica e scegli Chiudi e carica in... (Chiudi&Carica in...):

    Unire due liste senza duplicati

  6. Nella finestra di dialogo successiva (potrebbe sembrare leggermente diversa, non allarmarti), seleziona Basta creare una connessione (Crea solo connessione):

    Unire due liste senza duplicati

  7. Ripetiamo l'intera procedura (punti 2-6) per il secondo elenco. Quando si rinomina un'intestazione di colonna, è importante utilizzare lo stesso nome (Persone) della query precedente.
  8. Nella finestra di Excel nella scheda Dati o nella scheda Power Query Scegli Ottieni dati – Combina richieste – Aggiungi (Ottieni dati — Unisci query — Aggiungi):

    Unire due liste senza duplicati

  9. Nella finestra di dialogo che appare, seleziona le nostre richieste dagli elenchi a discesa:

    Unire due liste senza duplicati

  10. Di conseguenza, otterremo una nuova query, in cui due elenchi saranno collegati l'uno all'altro. Resta da rimuovere i duplicati con il pulsante Elimina righe: rimuovi i duplicati (Elimina righe — Elimina duplicati):

    Unire due liste senza duplicati

  11. La query finita può essere rinominata sul lato destro del pannello delle opzioni, assegnandole un nome sano (questo sarà infatti il ​​nome della tabella dei risultati) e il tutto può essere caricato sul foglio con il comando chiudi e scarica (Chiudi&Carica):

    Unire due liste senza duplicati

In futuro, con eventuali modifiche o integrazioni alle liste originali, basterà un semplice click destro per aggiornare la tabella dei risultati.

  • Come raccogliere più tabelle da file diversi usando Power Query
  • Estrazione di oggetti unici da un elenco
  • Come confrontare due liste tra loro per corrispondenze e differenze

Lascia un Commento