Kaip "Excel" programoje "VLOOKUP" vienoje ląstelėje įrašyti kelias vertes (2 paprasti metodai)

  • Pasidalinti
Hugh West

Dirbdami su dideliais duomenų kiekiais "Excel" programoje, kartais galite atsidurti tokioje situacijoje, kai reikia ieškoti reikšmių, kurios duomenų rinkinyje atsiranda kelis kartus. Taigi, šiuos duomenis turite matyti vienoje ląstelėje. Šioje pamokoje parodysime, kaip "Excel" programoje naudoti VLOOKUP kelioms reikšmėms vienoje ląstelėje.

Apskritai mes tiesiogiai nenaudojame VLOOKUP funkciją čia. Ketiname surasti kelias reikšmes vienoje ląstelėje, kuri bus panaši į VLOOKUP funkciją. Tikimės, kad ši pamoka jums bus naudinga.

Atsisiųsti praktikos sąsiuvinį

Vlookup Kelios vertės vienoje ląstelėje.xlsm

2 paprasti kelių verčių vienoje ląstelėje paieškos metodai

Dabar parodysime 2 būdus, kaip "Excel" programoje ieškoti kelių verčių vienoje ląstelėje. Pirmasis būdas - naudoti Formulės o antrasis - naudojant VBA kodus. Šiame straipsnyje ieškosime ir pasikartojančių, ir nepasikartojančių reikšmių. Taigi, galite pasirinkti tinkamiausią metodą pagal savo problemą.

Norėdami parodyti šią problemą, naudosime šį duomenų rinkinį:

Čia turime keletą pardavėjų Vardai ir jų pardavimas Produktai . Dabar mūsų tikslas - rasti kiekvieno pardavėjo parduodamus produktus.

1. Formulės naudojimas Vlookup kelių verčių vienoje ląstelėje "Excel" programoje

Svetainė TEXTJOIN funkcija bus mūsų funkcija šiam metodui įgyvendinti. TEXTJOIN funkcija leidžia sujungti 2 ar daugiau eilučių, kurių kiekviena reikšmė atskirta ženklu skirtukas . Daugiausia deriname įvairias funkcijas su funkcija TEXTJOIN, kad įgyvendintume savo formulę.

Svetainė TEXTJOIN funkciją galima naudoti tik "Excel 2019" ir "Office 365".

Pagrindinė funkcijos TEXTJOIN sintaksė:

=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

Šiuo atveju mūsų skirtukas bus kablelis ( "," ), kad būtų galima atskirti vieno langelio reikšmes.

1.1 TEXTJOIN ir IF funkcijos

Dabar šią formulę gana lengva naudoti. Ši formulė suras reikšmes ir taip pat įterps jas į vieną ląstelę su skiriamuoju ženklu - kableliu. Tačiau nepamirškite, kad ši formulė grąžins reikšmę su pasikartojimais.

Pagrindinė sintaksė:

=TEXTJOIN(", ",TRUE,IF(lookup_value=lookup_range,,finding_range,"))

📌 Žingsniai

1. Pirmiausia įveskite šią formulę Eilutė F5 :

=TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))

2. Tada paspauskite Įveskite.

3. Galiausiai vilkite Užpildymo rankena piktogramą virš ląstelių diapazono F6:F7 .

Galiausiai mums pavyksta naudoti VLOOKUP kelios reikšmės viename langelyje.

🔎 Formulės suskirstymas

Šį suskirstymą naudojame tik asmeniui "John".

IF(E5=B5:B13,C5:C13,"")

Ši funkcija grąžina tokį masyvą:

{"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))

Galiausiai TEXTJOIN funkcija grąžins tokį rezultatą:

{Mobilusis telefonas, Televizorius, Šaldytuvas, Mobilusis telefonas}

Skaityti daugiau: "Excel" VLOOKUP, kad vienoje ląstelėje grąžintumėte kelias kableliu atskirtas vertes

1.2 Funkcijos TEXTJOIN ir MATCH (be pasikartojimų)

Jei norite, kad vienoje ląstelėje būtų kelios reikšmės, galite naudoti šią formulę. Ši formulė - tai kombinacija TEXTJOIN ir MATCH Šią formulę naudoti šiek tiek sudėtinga, tačiau ji tikrai duos norimas vertes.

📌 ŽINGSNIAI

1. Pirmiausia įveskite šią formulę Eilutė 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. Tada paspauskite Įveskite.

3. Galiausiai vilkite Užpildymo rankena piktogramą virš ląstelių diapazono F6:F7 .

Galiausiai mums pavyksta naudoti VLOOKUP kelias reikšmes vienoje ląstelėje be pasikartojančių reikšmių.

🔎 Formulės suskirstymas

Šį suskirstymą naudojame tik asmeniui "John".

ROW(C5:C13)

Jis grąžina masyvą {5;6;7;8;9;10;11;12;13}

MATCH(EILUTĖ(C5:C13), EILUTĖ(C5:C13))

Jis grįžta: {1;2;3;4;5;6;7;8;9}

IF(E5=B5:B13, C5:C13, "")

Jis grįžta: {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

MATCH(C5:C13, IF(E5=B5:B13, C5:C13, "")

Ši funkcija grąžina: {8;8;7;9;7;7;7;8;7}

IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")

Jis grįžta: {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, "")

Jis grįžta: {"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, "")))

Galutinė išvestis bus Mobilusis telefonas, televizorius, šaldytuvas .

Skaityti daugiau: Kaip atlikti VLOOKUP su keliomis eilutėmis "Excel" programoje (5 metodai)

1.3 Funkcijos TEXTJOIN ir UNIQUE (be dublikatų)

Dabar UNIKALUS funkcija yra prieinama tik "Excel 365". Taigi, jei naudojate "Excel 365", tikrai galite naudoti šią formulę. Ankstesnė formulė yra šiek tiek sudėtinga, tačiau ši formulė palengvins verčių vienoje ląstelėje paiešką. Funkcija UNIQUE grąžina unikalių verčių sąrašą sąraše arba diapazone. Skirtumas tarp pirmosios ir trečiosios formulės yra tas, kad naudojama funkcija UNIQUE. UNIKALUS funkcija prieš IF funkcija.

Pagrindinė UNIQUE funkcijos sintaksė:

=UNIQUE (masyvas, [by_col], [exactly_once])

masyvas - Diapazonas arba masyvas, iš kurio išgaunamos unikalios reikšmės.

by_col - [neprivaloma] Kaip lyginti ir išskirti. Pagal eilutę = FALSE (numatytoji reikšmė); pagal stulpelį = TRUE.

tiksliai_vieną kartą - [pasirinktinai] TRUE = reikšmės, kurios pasitaiko vieną kartą, FALSE = visos unikalios reikšmės (numatytoji reikšmė)

📌 ŽINGSNIAI

1. Pirmiausia įveskite šią formulę Eilutė F5 :

=TEXTJOIN(", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,""))))

2. Tada paspauskite Įveskite.

3. Galiausiai vilkite Užpildymo rankena piktogramą virš ląstelių diapazono F6:F7.

Kaip matote, sėkmingai naudojome VLOOKUP kelios reikšmės viename langelyje.

🔎 Formulės suskirstymas

Šį suskirstymą naudojame tik asmeniui "John".

➤ IF(E5=B5:B13,C5:C13,"")

Jis grąžina {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

➤ UNIQUE(IF(E5=B5:B13,C5:C13,""))

Jis grąžina {"Mobile";"";"TV";"Fridge"}

TEXTJOIN(", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,""))))

Galutinis rezultatas Mobilusis telefonas, televizorius, šaldytuvas

Skaityti daugiau: Kaip Vlookup ir grąžinti kelias vertes išskleidžiamajame sąraše

2. Naudojant VBA kodus, kai vienoje ląstelėje ieškoma kelių verčių

Svetainė TEXTJOIN funkciją galima naudoti tik MS Excel 2019 ir "MS Excel 365 . Taigi, jei gerai žinote apie "Excel" VBA kodus, šie du kodai jums bus labai praktiški. Pirmasis bus su dublikatais, o antrasis - be dublikatų. Taigi pasirinkite metodą pagal savo problemą.

2.1 VBA kodai Kelios vertės vienoje ląstelėje

📌 ŽINGSNIAI

1. Pirma. Paspauskite Alt+F11 kad atidarytumėte Visual Basic redaktorių.

2. Tada spustelėkite Insert> Modulis .

3. Tada įveskite šį kodą:

 Funkcija 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. Dabar eikite į savo darbalapį. Tada įveskite šią formulę Eilutė F5 :

=Daugiareikšmės(B5:B13,E5,C5:C13,",")

5. Tada paspauskite ĮVYKDYTI.

6. Galiausiai vilkite užpildymo rankenos piktogramą virš ląstelių intervalo F6:F7.

Galiausiai naudojome VLOOKUP kelios reikšmės vienoje ląstelėje .

Skaityti daugiau: VLOOKUP kelioms vertėms horizontaliai grąžinti "Excel" programoje

2.2 VBA kodai, skirti kelioms reikšmėms vienoje ląstelėje ieškoti (be pasikartojimų)

📌 ŽINGSNIAI

1. Pirma. Paspauskite Alt+F11 kad atidarytumėte Visual Basic redaktorių.

2. Tada spustelėkite Insert> Modulis .

3. Tada įveskite šį kodą:

 Funkcija 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(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. Įterpę kodą, spustelėkite Įrankiai> Nuorodos atidarytame "Microsoft Visual Basic for Applications" lange, o tada iššokusiame lange Nuorodos - VBAProject dialogo lange pažymėkite "Microsoft Scripting Runtime parinktį Turimos nuorodos sąrašo langelį. Spustelėkite GERAI .

5. Dabar eikite į savo darbalapį. Tada įveskite šią formulę Eilutė F5 :

=ValuesNoDup(E5,B5:B13,2)

Čia 2 yra duomenų rinkinio stulpelio numeris.

6. Tada paspauskite Įveskite .

7. Galiausiai vilkite Užpildymo rankena piktogramą virš ląstelių diapazono F6:F7.

Kaip matote, naudojome VLOOKUP kelias reikšmes vienoje ląstelėje be pasikartojimų.

Skaityti daugiau: Kaip VLOOKUP ir grąžinti kelias vertes "Excel" programoje (8 metodai)

Išvada

Baigdamas tikiuosi, kad ši pamoka padės jums vlookup kelios reikšmės vienoje "Excel" ląstelėje. Atsisiųskite pratybų sąsiuvinį ir išbandykite tai patys. Be abejo, tai pagilins jūsų "Excel" žinias. Taip pat galite pateikti atsiliepimus komentarų skiltyje. Jūsų vertingi atsiliepimai skatina mus kurti daug tokių straipsnių. Nepamirškite aplankyti mūsų svetainės ExcelWIKI su "Excel" susijusių problemų ir sprendimų.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.