Contenuti
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):
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):
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:
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):
Dopo aver nominato, la formula di cui abbiamo bisogno sarà simile a questa:
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:
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:
- 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:
- 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).
- 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:
- 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).
- 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.
- Espandi l'elenco a discesa nell'angolo in alto a sinistra chiudi e scarica e scegli Chiudi e carica in... (Chiudi&Carica in...):
- Nella finestra di dialogo successiva (potrebbe sembrare leggermente diversa, non allarmarti), seleziona Basta creare una connessione (Crea solo connessione):
- 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.
- Nella finestra di Excel nella scheda Dati o nella scheda Power Query Scegli Ottieni dati – Combina richieste – Aggiungi (Ottieni dati — Unisci query — Aggiungi):
- Nella finestra di dialogo che appare, seleziona le nostre richieste dagli elenchi a discesa:
- 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):
- 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):
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