Come eseguire Vlookup con più corrispondenze in Excel (con semplici passaggi)

  • Condividi Questo
Hugh West

Una delle funzioni più sorprendenti e più utilizzate di Excel è la funzione Funzione VLOOKUP Finora abbiamo imparato a estrarre una singola corrispondenza da un intervallo di celle utilizzando questa funzione. Spesso si possono verificare scenari in cui è necessario ottenere tutti i valori corrispondenti per un identificatore univoco. In questo articolo dimostreremo come è possibile estrarre più corrispondenze da un intervallo di celle utilizzando la funzione Funzione VLOOKUP in Excel.

Scarica il quaderno di esercizi

È possibile scaricare la seguente cartella di lavoro Excel per una migliore comprensione e per esercitarsi.

Esecuzione di Vlookup con più corrispondenze.xlsx

2 passaggi per eseguire Vlookup con corrispondenze multiple in Excel

Qui abbiamo il Record di libri della libreria Martin Questo set di dati contiene i dati Tipo di libro , Nome del libro , e Autore di alcuni libri sotto le colonne B , C , e D in modo corrispondente.

Oggi il nostro obiettivo è quello di estrarre tutte le corrispondenze di ogni tipo di libro utilizzando il metodo Funzione VLOOKUP Eseguiremo questa operazione in due fasi, quindi esploriamole una per una.

Qui abbiamo utilizzato Microsoft Excel 365 è possibile utilizzare qualsiasi altra versione in base alle proprie esigenze.

📌 Passo 01: creare un nome univoco per ogni valore di ricerca

  • All'inizio, inserire una nuova colonna con l'intestazione Colonna di aiuto a sinistra della colonna di ricerca Tipo di libro e inserire questa formula nella cella B5 .
=C5&COUNTIF(C5:$C$25,C5) Ripartizione della formula
  • COUNTIF(C5:$C$25,C5) restituisce il numero totale di celle nell'intervallo C5:C25 ( Tipo di libro ) che contengono il valore della cella C5 ( Romanzo ). Funzione COUNTIF per i dettagli.
    • In parole povere, quanti romanzi ci sono. è 7 .
  • C5&COUNTIF(C5:$C$25,C5) concatena il valore nella cella C5 ( Romanzo ) con esso.
    • Quindi restituisce Romanzo7 .

Quando si trascina l'elemento Maniglia di riempimento strumento, C5 incrementa uno per uno, come C5 , C6 , C7 ... ma C25 Pertanto, per ogni Tipo di libro , i precedenti vengono esclusi e viene generato un nuovo nome.

Ad esempio, nel caso dei romanzi, Romanzo1 a Romanzo7 e simili per Poesia e altri tipi di libri.

  • Quindi, premere ENTRARE .

  • Successivamente, portare il cursore nell'angolo in basso a destra della cella B5 e sembrerà un vantaggio (+) segno. In realtà, è il Maniglia di riempimento strumento.
  • A questo punto, fare doppio clic su di esso.

La formula viene copiata nel resto delle celle. Tutti i valori di ricerca vengono forniti con un nome univoco, ad esempio Romanzo1 , Romanzo2..., Poesia1 , Poesia2... , ecc.

📌 Passo 02: utilizzare la funzione VLOOKUP

  • Prima di tutto, creare una nuova colonna con Intestazione della colonna come valore di ricerca.

  • In secondo luogo, inserire la seguente formula nella cella G5 che è la prima cella di questa colonna.
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)),$B$5:$E$25,3,FALSE) Ripartizione della formula
  • COUNTIF($C$5:$C$25,G$4) indica quante celle dell'intervallo C5:C25 ( Tipo di libro ) contengono il valore della cella G4 ( Romanzo ).
    • In parole povere, quanti romanzi ci sono in totale. è 7 .

Abbiamo utilizzato il riferimento assoluto alla cella dell'intervallo C5:C25 ( $C$5:$C$25 ) perché vogliamo che rimanga invariata se copiamo la formula in una cella qualsiasi.

  • INDIRETTO("A"&COUNTIF($C$5:$C$25,G$4)) diventa INDIRETTO("A"&7) e restituisce il riferimento alla cella A7 . vedi il Funzione INDIRETTA per i dettagli.
  • ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) diventa ora RIGA(A1:A7) Vedere il Funzione ROW per i dettagli.
    • Restituisce un array da 1 a 7 come {1, 2, 3, 4, 5, 6, 7} .

Abbiamo utilizzato $A$1 perché non vogliamo che cambi se copiamo la formula in un'altra cella.

  • G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) concatena ora il valore nella cella G4 ( Romanzo ) con l'array restituito dal metodo Funzione ROW e restituisce un altro array.
    • Quindi restituisce {Romanzo1, Romanzo2, ..., Romanzo7} .
  • VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)),$B$5:$E$25,3,FALSE) diventa VLOOKUP({Romanzo1, Romanzo2, ..., Romanzo7},$B$5:$E$25,3,FALSO) .

Cerca ogni valore dell'array {Romanzo1, Romanzo2, ... Romanzo7} nella colonna di ricerca B .

Quindi restituisce il nome corrispondente del romanzo dalla cartella 3a (come la colonna col_index_num è 3 ). Si ottiene così un elenco di tutti i romanzi.

  • Come di consueto, premere il tasto ENTRARE chiave.

Nota: Si tratta di una formula ad array, quindi non dimenticate di premere Ctrl + Shift + Invio a meno che non si tratti di Excel 365 .

E per l'altro Tipi di libri ,

  • All'inizio, inserire i loro nomi uno accanto all'altro come Intestazioni di colonna e trascinare l'elemento Maniglia di riempimento .

Per saperne di più: VLOOKUP INDIRETTO in Excel

Letture simili

  • VLOOKUP non funziona (8 motivi e soluzioni)
  • Excel LOOKUP vs VLOOKUP: con 3 esempi
  • Perché VLOOKUP restituisce #N/A quando esiste una corrispondenza? (5 cause e soluzioni)
  • Utilizzare VLOOKUP con più criteri in Excel (6 metodi + alternative)
  • Excel VLOOKUP per trovare l'ultimo valore nella colonna (con alternative)

Modi alternativi per eseguire Vlookup con più corrispondenze in Excel

Se il metodo precedente vi sembra pericoloso, non preoccupatevi: ci sono altre opzioni disponibili.

1. Utilizzo della funzione FILTRO

Questo è il metodo più semplice. In questo caso, utilizzeremo solo il metodo Funzione FILTRO Seguire questi semplici passaggi.

📌 Passi:

  • In primo luogo, scrivete il Tipo di libro come il Intestazione della colonna e inserire la seguente formula nella cella F5 .
=FILTRO($C$5:$C$25,$B$5:$B$25=F$4) Ripartizione della formula

Qui,

  • $C$5:$C$25 ( Nome del libro ) è il array_di_ricerca Stiamo cercando i nomi dei libri. Usate il vostro.
  • $B$5:$B$25 ( Tipo di libro ) è il matrice_di_corrispondenza Vogliamo che i tipi di libri corrispondano. Usate il vostro di conseguenza.
  • F4 ( Romanzo ) è il valore_corrispondente Vogliamo abbinare i romanzi e voi lo usate di conseguenza.
  • Quindi, premere ENTRARE .

Ora, se si vuole che il Nomi dei libri di tutti i Tipi di libri ,

  • Inizialmente, inserire i loro nomi come Intestazioni di colonna affiancati, quindi trascinare il Maniglia di riempimento strumento.

2. Applicare la combinazione delle funzioni INDICE, PICCOLO e VOCI (compatibile con le versioni precedenti di Excel)

Il Funzione FILTRO è disponibile solo in Office 365 Quindi, se utilizzate la versione precedente di Excel, non preoccupatevi: abbiamo un'altra soluzione per voi, semplice e facile da seguire.

📌 Passi:

  • In primo luogo, inserire il Tipo di libro come il Intestazione della colonna in cella F4 e inserire questa formula nella cella F5 .
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),"") Ripartizione della formula
  • ROW(B5:B25) restituisce un array di {5, 6, 7, ..., 25} . e RIGHE(B1:B4) ritorni 4 . Quindi RIGA(B5:B25)-FRECCE(B1:B4) restituisce un array di {1, 2, 3, ..., 21} . vedi il FILO e FILARI per i dettagli.
  • IF($B$5:$B$25=F4,RIGA(B5:B25)-RIGA(B1:B4),") restituisce il numero corrispondente dall'array {1, 2, 3, ..., 21} il valore nella cella F4 ( Romanzo ) corrisponde al valore in qualsiasi cella dell'intervallo B5:B25 ( Tipo di libro ), altrimenti restituisce una cella vuota. Si veda il file Funzione IF per i dettagli.

  • SMALL(IF($B$5:$B$25=F4,RIGA(B5:B25)-RIGA(B1:B4),""),(RIGA(B5:B25)-RIGA(B1:B4)) diventa SMALL({1, ..., 3, ..., 6, ..., 20, ...},{1, 2, 3, 4, ...., 21}) e restituisce prima i numeri, poi #NUM! errori nelle celle vuote. Funzione SMALL per i dettagli.

  • INDICE($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),[ROW(B5:B25)-ROWS(B1:B4))))) diventa INDEX($C$5:$C$25,{1,3,6,11,...,#NUM!}) e restituisce il corrispondente Nomi dei libri (Nome del romanzo) e #NUM! errori. Vedere il Funzione INDICE per i dettagli.

  • Infine, abbiamo avvolto la formula all'interno di un elemento Funzione IFERROR per trasformare gli errori in celle vuote.
  • Dopodiché, premere ENTRARE .

  • Ora, se volete, inserite l'altro Tipi di libri come Intestazioni di colonna e trascinare l'elemento Maniglia di riempimento Si otterranno i libri degli altri tipi di libri.

3. Vlookup con più corrispondenze e restituzione dei risultati in una riga

Nei metodi precedenti, abbiamo ottenuto i risultati in colonne verticali, ma se vogliamo ottenere i valori in una riga, come possiamo fare? Qui, otterremo i valori di Autore nomi per diversi Tipi di libri Seguire attentamente i passaggi indicati di seguito.

📌 Passi:

  • All'inizio, andare alla cella G5 e scrivere la formula sottostante.
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6)),")

Questa formula è simile a quella precedente. Pertanto, se si riscontrano problemi nella comprensione di questa formula, si consiglia di consultare la sezione spiegazione precedente .

  • Quindi, toccare il pulsante ENTRARE chiave.

Ma ci sono altri autori che hanno romanzi in questo set di dati. Quindi, come possiamo ottenerli?

È sufficiente trascinare il Maniglia di riempimento fino alla cella K5 per ottenere l'altro Autori di Romanzo Inoltre, trascinare il Maniglia di riempimento strumento a cella K7 per ottenere i nomi di Autori Per chiarimenti, si veda l'immagine sottostante.

Come eseguire il Vlookup di numerose corrispondenze con diversi criteri

Negli esempi precedenti, abbiamo trovato i valori per singoli criteri. Ad esempio, abbiamo ottenuto i titoli dei libri per uno specifico tipo di libro. Qui, invece, implicheremo criteri multipli. Cercheremo i criteri Romanzi di Charles Dickens Vediamo come funziona questo metodo.

📌 Passi:

  • Innanzitutto, selezionare la cella H5 e incollare la seguente formula.
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25)),ROW($C$5:$C$25)-4,""),ROW()-4)),"")
  • Quindi, premere ENTRARE .

Come eseguire Vlookup e restituire più corrispondenze in una cella

Negli approcci precedenti, abbiamo ottenuto i valori in celle diverse, ma ora mostreremo come ottenere i risultati in un'unica cella. Quindi, senza ulteriori indugi, iniziamo!

📌 Passi:

  • In primo luogo, andare alla cella G5 e inserire la formula sottostante.
=TEXTJOIN(", ", TRUE, IF($F$5=$B$5:$B$25,C5:C25,"))

Qui, il Funzione IF ottiene il valore dall'intervallo C5:C25 dove i valori corrispondenti nell'intervallo B5:B25 corrisponde al valore della cella F5 . Poi, il Funzione TEXTJOIN combina i valori dell'array con una virgola come delimitatore.

  • In secondo luogo, premere ENTRARE .

Per saperne di più: MATCH INDICE vs funzione VLOOKUP (9 esempi)

Conclusione

Questo articolo spiega come eseguire vlookup con più corrispondenze in Excel in modo semplice e conciso. Non dimenticate di scaricare il file di pratica. Grazie per aver letto questo articolo. Speriamo che sia stato utile. Fateci sapere nella sezione dei commenti se avete domande o suggerimenti. Visitate il nostro sito web, ExcelWIKI , un fornitore unico di soluzioni Excel, per saperne di più.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.