Sommario
Lavorando con grandi quantità di dati in Excel, a volte ci si può trovare in una situazione in cui è necessario cercare valori che appaiono più volte nel set di dati. Quindi, è necessario vedere questi dati in una sola cella. In questa esercitazione, vi mostreremo come utilizzare VLOOKUP per più valori in una cella in Excel.
In generale, non si utilizza direttamente l'opzione VLOOKUP Troveremo più valori in una cella, in modo simile alla funzione VLOOKUP. Ci auguriamo che questa esercitazione vi sia utile.
Scarica il quaderno di esercizi
Vlookup Valori multipli in una cella.xlsm2 metodi semplici per eseguire Vlookup per più valori in una cella
Ora vi mostreremo due modi per cercare più valori in una cella in Excel. Il primo consiste nell'utilizzare il comando Formule e il secondo utilizza il metodo VBA In questo articolo esamineremo sia i valori ripetuti che quelli non ripetuti. Potete quindi scegliere il metodo più adatto al vostro problema.
Per dimostrare questo problema, utilizzeremo il seguente set di dati:
Qui abbiamo alcuni venditori Nomi e la loro vendita Prodotti Ora, il nostro obiettivo è trovare i prodotti di vendita di ciascun venditore.
1. Usare le formule per visualizzare più valori in una cella in Excel
Il TESTO sarà la nostra funzione per implementare questo metodo. La funzione TESTO permette di unire 2 o più stringhe con ogni valore separato da un delimitatore Per implementare la nostra formula, stiamo combinando diverse funzioni con la funzione TEXTJOIN.
Il TESTO La funzione è disponibile solo per Excel 2019 e Office 365.Sintassi di base della funzione TEXTJOIN:
=TEXTJOIN(delimitatore, ignore_empty, testo1, [testo2], ...)
In questo caso, il delimitatore sarà una virgola ( ","
) per separare i valori in una cella.
1.1 Le funzioni TEXTJOIN e IF
Questa formula è piuttosto facile da usare: cercherà i valori e li inserirà in una cella con un delimitatore, la virgola. Ma ricordate che questa formula restituirà il valore con i duplicati.
La sintassi di base:
=TEXTJOIN(", ",TRUE,IF(lookup_value=lookup_range,,finding_range,"))
📌 Passi
1. Per prima cosa, digitare la seguente formula in Cella F5 :
=TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))
2. Quindi, premere Entrare.
3. Infine, trascinare il campo Maniglia di riempimento sull'intervallo di celle F6:F7 .
Alla fine, siamo riusciti a utilizzare VLOOKUP valori multipli in una cella.
🔎 Ripartizione della formula
Utilizziamo questa ripartizione solo per la persona "John".
➤ IF(E5=B5:B13,C5:C13,"")
Questa funzione restituisce la seguente matrice:
{"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ TEXTJOIN(", ", TRUE, IF(E5=B5:B13,C5:C13,"))
Infine, il TESTO restituirà il seguente risultato:
{Cellulare, TV, Frigorifero, Cellulare.}
Per saperne di più: VLOOKUP di Excel per restituire più valori in una cella separati da virgola
1.2 Le funzioni TEXTJOIN e MATCH (senza duplicati)
Ora, se si vogliono più valori in una cella, si può usare questa formula, che è una combinazione delle formule TESTO e PARTITA Questa formula è un po' complessa da usare, ma sicuramente darà i valori desiderati.
📌 PASSI
1. Per prima cosa, digitare la seguente formula in Cella F5 :
=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, ""))
2. Quindi, premere Entrare.
3. Infine, trascinare il campo Maniglia di riempimento sull'intervallo di celle F6:F7 .
Alla fine, siamo riusciti a utilizzare VLOOKUP valori multipli in una cella senza duplicare i valori.
🔎 Ripartizione della formula
Utilizziamo questa ripartizione solo per la persona "John".
➤ ROW(C5:C13)
Restituisce un array di {5;6;7;8;9;10;11;12;13}
➤ MATCH(RIGA(C5:C13), RIGA(C5:C13))
Ritorna: {1;2;3;4;5;6;7;8;9}
➤ IF(E5=B5:B13, C5:C13, "")
Ritorna: {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ MATCH(C5:C13, IF(E5=B5:B13, C5:C13, "")
Questa funzione restituisce: {8;8;7;9;7;7;7;8;7}
➤ IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")
Ritorna: {1;1;"";4;"";6;"";1;""}
➤ IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, "")
Ritorna: {"Mobile";"";"";"TV";"";"Fridge";"";"";""}
➤ TEXTJOIN(",", TRUE, IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, ""))
L'output finale sarà Cellulare, TV, Frigorifero .
Per saperne di più: Come eseguire VLOOKUP con più righe in Excel (5 metodi)
1.3 Le funzioni TEXTJOIN e UNIQUE (senza duplicati)
Ora, il UNICO è disponibile solo in Excel 365. Quindi, se utilizzate Excel 365, potete sicuramente utilizzare questa formula. La formula precedente è un po' difficile, ma questa formula semplifica la ricerca dei valori in una cella. La funzione UNIQUE restituisce un elenco di valori univoci in un elenco o in un intervallo. Ora, la differenza tra la prima e la terza formula è l'utilizzo della formula UNICO prima della funzione SE funzione.
Sintassi di base della funzione UNIQUE:
=UNIQUE (array, [by_col], [exactly_once])
array - Intervallo o matrice da cui estrarre i valori univoci.
da_col - Per riga = FALSE (valore predefinito); per colonna = TRUE.
esattamente_una_volta - [opzionale] TRUE = valori che ricorrono una sola volta, FALSE= tutti i valori unici (valore predefinito)
📌 PASSI
1. Per prima cosa, digitare la seguente formula in Cella F5 :
=TEXTJOIN(", ", TRUE, UNIQUE(IF(E5=B5:B13,C5:C13,")))
2. Quindi, premere Entrare.
3. Infine, trascinare il campo Maniglia di riempimento sull'intervallo di celle F6:F7.
Come si può vedere, abbiamo utilizzato con successo VLOOKUP valori multipli in una cella.
🔎 Ripartizione della formula
Utilizziamo questa ripartizione solo per la persona "John".
➤ IF(E5=B5:B13,C5:C13,")
Restituisce {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ UNIQUE(IF(E5=B5:B13,C5:C13,""))
Restituisce {"Mobile";"";"TV";"Fridge"}
➤ TEXTJOIN(", ", TRUE, UNIQUE(IF(E5=B5:B13,C5:C13,")))
Risultato finale Cellulare, TV, Frigorifero
Per saperne di più: Come eseguire Vlookup e restituire più valori in un elenco a discesa
2. Utilizzo dei codici VBA per eseguire il Vlookup di più valori in una cella
Il TESTO è disponibile solo per MS Excel 2019 e MS Excel 365 Quindi, se conoscete bene i codici VBA di Excel, questi due codici saranno molto pratici per voi. Il primo sarà con i duplicati e il secondo sarà senza duplicati. Quindi, scegliete il metodo in base al vostro problema.
2.1 VBA codifica più valori in una cella
📌 PASSI
1. Per prima cosa, premere Alt+F11 per aprire Visual Basic Editor.
2. Quindi, fare clic su Inserire> Modulo .
3. Digitare quindi il seguente codice:
Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant Dim outcome As String On Error Resume Next If work_range.Count merge_range.Count Then MultipleValues = CVErr(xlErrRef) Exit Function End If For i = 1 To work_range.Count If work_range.Cells(i).Value = criteria Then outcome = outcome & Separator &merge_range.Cells(i).Value End If Next i If outcome "" Then outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1) End If MultipleValues = outcome Exit Function End Function
4. Passare al foglio di lavoro e digitare la formula seguente Cella F5 :
=Valori multipli(B5:B13,E5,C5:C13,",")
5. Quindi, premere ENTRARE.
6. Infine, trascinare l'icona Maniglia di riempimento sull'intervallo di celle F6:F7.
Alla fine, abbiamo utilizzato VLOOKUP più valori in una cella .
Per saperne di più: VLOOKUP per restituire più valori in orizzontale in Excel
2.2 Codici VBA per LOOKUP di più valori in una cella (senza duplicati)
📌 PASSI
1. Per prima cosa, premere Alt+F11 per aprire Visual Basic Editor.
2. Quindi, fare clic su Inserire> Modulo .
3. Digitare quindi il seguente codice:
Function ValuesNoDup(target As String, search_range As Range, ColumnNumber As Integer) Dim i As Long Dim outcome As String For i = 1 To search_range.Columns(1).Cells.Count If search_range.Cells(i, 1) = target Then For J = 1 To i - 1 If search_range.Cells(J, 1) = target Then If search_range.Cells(J, ColumnNumber) = search_range.Cells(i, ColumnNumber) Then GoTo Skip End If End If Next J outcome =outcome & " " & search_range.Cells(i, ColumnNumber) & "," Skip: End If Next i ValuesNoDup = Left(outcome, Len(outcome) - 1) End Function
4. Dopo aver inserito il codice, fare clic su Strumenti> Riferimenti nella finestra di Microsoft Visual Basic for Applications aperta, e poi, nella finestra visualizzata Riferimenti - Nella finestra di dialogo VBAProject, selezionare l'opzione Runtime di scripting Microsoft nel file Riferimenti disponibili Fare clic su OK .
5. Passare al foglio di lavoro e digitare la formula seguente Cella F5 :
=ValoriNoDup(E5,B5:B13,2)
Qui, 2 è il numero di colonna del set di dati.
6. Quindi, premere Entrare .
7. Infine, trascinare il campo Maniglia di riempimento sull'intervallo di celle F6:F7.
Come si può vedere, abbiamo utilizzato VLOOKUP valori multipli in una cella senza duplicati.
Per saperne di più: Come fare VLOOKUP e restituire più valori in Excel (8 metodi)
Conclusione
Per concludere, spero che questo tutorial vi aiuti a eseguire vlookup valori multipli in una cella in Excel. Scaricate la cartella di lavoro pratica e provate voi stessi. Sicuramente svilupperete le vostre conoscenze di Excel. Inoltre, sentitevi liberi di dare il vostro feedback nella sezione dei commenti. Il vostro prezioso feedback ci mantiene motivati a creare molti articoli come questi. Non dimenticate di controllare il nostro sito web ExcelWIKI per problemi e soluzioni relativi a Excel.