Cuprins
În timp ce lucrați cu cantități mari de date în Excel, uneori vă puteți afla într-o situație în care trebuie să căutați valori care apar de mai multe ori în setul de date. Deci, trebuie să vedeți aceste date într-o singură celulă. În acest tutorial, vă vom arăta cum să utilizați VLOOKUP pentru mai multe valori într-o singură celulă în Excel.
În general, nu folosim în mod direct VLOOKUP Vom găsi mai multe valori într-o singură celulă, care va fi similară cu funcția VLOOKUP. Sperăm că acest tutorial vă va fi de folos.
Descărcați caietul de practică
Vlookup Valori multiple într-o singură celulă.xlsm2 Metode ușoare pentru a Vlookup pentru mai multe valori într-o singură celulă
Acum, vă vom arăta 2 moduri de a căuta mai multe valori într-o singură celulă în Excel. Primul este folosind funcția Formule iar al doilea folosește VBA În acest articol vom analiza atât valorile repetate, cât și pe cele nerepetate. Astfel, puteți alege metoda cea mai potrivită în funcție de problema dumneavoastră.
Pentru a demonstra această problemă, vom utiliza următorul set de date:
Aici, avem niște vânzători Nume și vânzarea lor Produse Acum, obiectivul nostru este de a găsi produsele de vânzare ale fiecărui vânzător.
1. Utilizarea formulelor pentru a Vlookup mai multe valori într-o singură celulă în Excel
The TEXTJOIN va fi funcția pe care o vom folosi pentru a implementa această metodă. Funcția TEXTJOIN vă permite să uniți 2 sau mai multe șiruri de caractere, fiecare valoare fiind separată de un asterisc delimitator În principal, combinăm diferite funcții cu funcția TEXTJOIN pentru a pune în aplicare formula noastră.
The TEXTJOIN funcția este disponibilă numai pentru Excel 2019 și Office 365.Sintaxa de bază a funcției TEXTJOIN:
=TEXTJOIN(delimitator, ignore_empty, text1, [text2], ...)
Aici, delimitatorul nostru va fi o virgulă ( ","
) pentru a separa valorile dintr-o singură celulă.
1.1 Funcțiile TEXTJOIN și IF
Acum, această formulă este destul de ușor de utilizat. Această formulă va căuta valorile și le va insera într-o singură celulă cu un delimitator, virgulă. Dar nu uitați că această formulă va returna valoarea cu dubluri.
Sintaxa de bază:
=TEXTJOIN(", ", ",TRUE,IF(lookup_value=lookup_range,,finding_range,""))
📌 Pași
1. Mai întâi, introduceți următoarea formulă în Celula F5 :
=TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))
2. Apoi, apăsați Intră.
3. În cele din urmă, glisați butonul Mâner de umplere pictograma peste intervalul de celule F6:F7 .
În cele din urmă, reușim să folosim VLOOKUP mai multe valori într-o singură celulă.
🔎 Defalcarea formulei
Utilizăm această defalcare numai pentru persoana "John".
➤ IF(E5=B5:B13,C5:C13,"")
Această funcție returnează următoarea matrice:
{"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ TEXTJOIN(", ", ",TRUE,IF(E5=B5:B13,C5:C13,"")))
În cele din urmă, se va TEXTJOIN va returna următorul rezultat:
{Mobil, TV, Frigider, Mobil}
Citește mai mult: Excel VLOOKUP pentru a returna mai multe valori într-o singură celulă separată prin virgulă
1.2 Funcțiile TEXTJOIN și MATCH (fără duplicate)
Acum, dacă doriți mai multe valori într-o singură celulă, puteți folosi această formulă. Această formulă este o combinație a formulei TEXTJOIN și MATCH Această formulă este un pic mai complexă, dar cu siguranță vă va da valorile dorite.
📌 PAȘI
1. Mai întâi, introduceți următoarea formulă în Celula 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. Apoi, apăsați Intră.
3. În cele din urmă, glisați butonul Mâner de umplere pictograma peste intervalul de celule F6:F7 .
În cele din urmă, reușim să folosim VLOOKUP mai multe valori într-o singură celulă, fără valori duplicate.
🔎 Defalcarea formulei
Utilizăm această defalcare numai pentru persoana "John".
➤ ROW(C5:C13)
Acesta returnează un array de {5;6;7;8;9;10;11;12;13}
➤ MATCH(RÂND(C5:C13), RÂND(C5:C13))
Se întoarce: {1;2;3;4;5;6;7;8;9}
➤ IF(E5=B5:B13, C5:C13, "")
Se întoarce: {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ MATCH(C5:C13, IF(E5=B5:B13, C5:C13, "")
Această funcție returnează: {8;8;7;9;7;7;7;8;7}
➤ IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),""")
Se întoarce: {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, "")
Se întoarce: {"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, "")))
Rezultatul final va fi Mobil, TV, Frigider .
Citește mai mult: Cum să efectuați VLOOKUP cu mai multe rânduri în Excel (5 metode)
1.3 Funcțiile TEXTJOIN și UNIQUE (fără duplicate)
Acum, în UNIC este disponibilă doar în Excel 365. Deci, dacă folosiți Excel 365, atunci puteți folosi cu siguranță această formulă. Formula anterioară este puțin mai dificilă, dar această formulă va ușura modul de căutare a valorilor dintr-o celulă. Funcția UNIQUE returnează o listă de valori unice într-o listă sau interval. Acum, diferența dintre prima și a treia formulă este folosirea funcției UNIC înainte de funcția IF funcție.
Sintaxa de bază a funcției UNIQUE:
=UNIQUE (array, [by_col], [exactly_once])
array - Interval sau matrice din care se extrag valorile unice.
by_col - [opțional] Modul de comparare și de extragere. Pe rând = FALSE (implicit); pe coloană = TRUE.
exact_o dată - [opțional] TRUE = valori care apar o singură dată, FALSE= toate valorile unice (implicit)
📌 PAȘI
1. Mai întâi, introduceți următoarea formulă în Celula F5 :
=TEXTJOIN(", ", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,""))))
2. Apoi, apăsați Intră.
3. În cele din urmă, glisați butonul Mâner de umplere pictograma peste intervalul de celule F6:F7.
După cum puteți vedea, am folosit cu succes VLOOKUP mai multe valori într-o singură celulă.
🔎 Defalcarea formulei
Utilizăm această defalcare numai pentru persoana "John".
➤ IF(E5=B5:B13,C5:C13,""")
Acesta returnează {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ UNIQUE(IF(E5=B5:B13,C5:C13,""))
Acesta returnează {"Mobile";"";"TV";"Fridge"}
➤ TEXTJOIN(", ", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,""))))
Rezultatul final Mobil,TV,Frigider
Citește mai mult: Cum să Vlookup și să returneze mai multe valori în lista derulantă
2. Utilizarea codurilor VBA pentru a face Vlookup cu mai multe valori într-o singură celulă
The TEXTJOIN este disponibilă numai pentru MS Excel 2019 și MS Excel 365 Așadar, dacă cunoașteți bine codurile VBA din Excel, aceste două coduri vor fi foarte practice pentru dvs. Primul va fi cu duplicate, iar al doilea va fi fără duplicate. Deci, alegeți metoda în funcție de problema dvs.
2.1 VBA codifică mai multe valori într-o singură celulă
📌 PAȘI
1. Mai întâi, apăsați Alt+F11 pentru a deschide Visual Basic Editor.
2. Apoi, faceți clic pe Inserare> Modul .
3. În continuare, introduceți următorul cod:
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. Acum, mergeți la foaia de calcul. Apoi, introduceți următoarea formulă în Celula F5 :
=MultipleValues(B5:B13,E5,C5:C13,",")
5. Apoi, apăsați INTRĂ.
6. În cele din urmă, trageți pictograma Fill Handle peste intervalul de celule F6:F7.
În cele din urmă, am folosit VLOOKUP mai multe valori într-o singură celulă .
Citește mai mult: VLOOKUP pentru a returna mai multe valori orizontal în Excel
2.2 Coduri VBA pentru a căuta mai multe valori într-o singură celulă (fără duplicate)
📌 PAȘI
1. Mai întâi, apăsați Alt+F11 pentru a deschide Visual Basic Editor.
2. Apoi, faceți clic pe Inserare> Modul .
3. În continuare, introduceți următorul cod:
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 If outcome =outcome & " " & search_range.Cells(i, ColumnNumber) & "," Skip: End If Next i ValuesNoDup = Left(outcome, Len(outcome) - 1) End Function
4. După ce ați inserat codul, apoi faceți clic pe Instrumente> Referințe în fereastra deschisă a Microsoft Visual Basic for Applications, iar apoi, în fereastra care se deschide Referințe - Caseta de dialog VBAProject, bifați caseta Microsoft Scripting Runtime din cadrul opțiunii Referințe disponibile Faceți clic pe OK .
5. Acum, mergeți la foaia de calcul. Apoi, introduceți următoarea formulă în Celula F5 :
=ValuesNoDup(E5,B5:B13,2)
Aici, 2 este numărul coloanei din setul de date.
6. Apoi, apăsați Introduceți .
7. În cele din urmă, glisați butonul Mâner de umplere pictograma peste intervalul de celule F6:F7.
După cum puteți vedea, am folosit VLOOKUP mai multe valori într-o singură celulă, fără duplicate.
Citește mai mult: Cum să VLOOKUP și să returnați valori multiple în Excel (8 metode)
Concluzie
În concluzie, sper că acest tutorial vă va ajuta să vlookup mai multe valori într-o singură celulă în Excel. Descărcați caietul de lucru de practică și încercați și dvs. aceste lucruri. Cu siguranță, vă va dezvolta cunoștințele despre Excel. De asemenea, nu ezitați să oferiți feedback în secțiunea de comentarii. Feedback-ul dvs. valoros ne menține motivați să creăm o mulțime de articole ca acestea. Nu uitați să vizitați site-ul nostru web ExcelWIKI pentru probleme și soluții legate de Excel.