Napredni VLOOKUP v Excelu: večkratni, dvojni, vgnezdeni

  • Deliti To
Michael Brown

S temi primeri se boste naučili, kako uporabiti več meril za Vlookup, vrniti določen primerek ali vsa ujemanja, izvajati dinamični Vlookup v več listih in še več.

To je drugi del serije, ki vam bo pomagal izkoristiti moč Excelove funkcije VLOOKUP. Primeri pomenijo, da veste, kako ta funkcija deluje. Če ne, je smiselno začeti z osnovno uporabo funkcije VLOOKUP v Excelu.

Preden nadaljujemo, naj vas na kratko spomnim na sintakso:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Zdaj, ko smo vsi na isti strani, si podrobneje oglejmo napredne primere formule VLOOKUP:

    Kako Vlookup več meril

    Excelova funkcija VLOOKUP je zelo uporabna, ko je treba poiskati določeno vrednost v podatkovni zbirki. Vendar pa ji manjka pomembna lastnost - njena sintaksa omogoča le eno vrednost iskanja. Kaj pa, če želite iskati z več pogoji? Na voljo je nekaj različnih rešitev, med katerimi lahko izbirate.

    Formula 1. VLOOKUP z dvema kriterijema

    Recimo, da imate seznam naročil in želite poiskati količino na podlagi dveh meril, Ime stranke in . Izdelek Dodaten dejavnik je, da je vsaka stranka naročila več izdelkov, kot je prikazano v spodnji preglednici:

    Običajna formula VLOOKUP v tem primeru ne bo delovala, saj vrne prvo najdeno ujemanje na podlagi ene same vrednosti iskanja, ki jo določite.

    To lahko odpravite tako, da dodate pomožni stolpec in združite vrednosti iz dveh stolpcev za iskanje ( Stranka in . Izdelek ). Pomembno je, da je pomožni stolpec skrajno levo stolpec v tabelarnem polju, saj v njem Excelov VLOOKUP vedno išče vrednost iskanja.

    Zato dodajte stolpec na levi strani tabele in v ta stolpec kopirajte spodnjo formulo. Tako se bo pomožni stolpec napolnil z vrednostmi iz stolpcev B in C (zaradi boljše berljivosti je znak presledka med njima sklenjen):

    =B2&" "&C2

    Nato uporabite standardno formulo VLOOKUP in obe merili vstavite v lookup_value argumenta, ločena s presledkom:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    Lahko pa merila vnesete v ločeni celici (v našem primeru G1 in G2) in ju združite:

    =VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)

    Ker želimo vrniti vrednost iz stolpca D, ki je četrti v tabeli, uporabimo 4 za col_index_num . range_lookup Argument je nastavljen na FALSE, da Vlookup išče natančno ujemanje. Spodnja zaslonska slika prikazuje rezultat:

    Če je vaša preglednica iskanja v drugi list , vključite ime lista v formulo VLOOKUP, na primer:

    =VLOOKUP(G1&""&G2, Naročila!A2:D11, 4, FALSE)

    Lahko pa ustvarite poimenovano območje za preglednico iskanja (na primer, Naročila ), da je formulo lažje prebrati:

    =VLOOKUP(G1&" "&G2, naročila, 4, FALSE)

    Za več informacij glejte poglavje Kako v Excelu iz drugega lista.

    Opomba: Za pravilno delovanje formule je treba vrednosti v pomožnem stolpcu združiti na enak način kot v stolpcu lookup_value Na primer, znak presledka smo uporabili za ločevanje meril v pomožnem stolpcu (B2&""&C2) in formuli VLOOKUP (G1&""&G2).

    Formula 2. Excelov VLOOKUP z več pogoji

    Teoretično lahko zgornji pristop uporabite za iskanje po več kot dveh merilih. Vendar obstaja nekaj zadržkov. Prvič, vrednost iskanja je omejena na 255 znakov in drugič, zasnova delovnega lista morda ne omogoča dodajanja pomožnega stolpca.

    Na srečo Microsoft Excel pogosto ponuja več načinov za isto stvar. Za Vlookup več meril lahko uporabite kombinacijo INDEX MATCH ali funkcijo XLOOKUP, ki je bila nedavno uvedena v Office 365.

    Če želite na primer poiskati na podlagi 3 različnih vrednosti ( Datum , Ime stranke in . Izdelek ), uporabite eno od naslednjih formul:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Kje:

    • G1 je merilo 1 (datum)
    • G2 je merilo 2 (ime stranke).
    • G3 je merilo 3 (izdelek)
    • A2:A11 je območje iskanja 1 (datumi)
    • B2:B11 je območje iskanja 2 (imena strank)
    • C2:C11 je območje iskanja 3 (izdelki)
    • D2:D11 je območje vrnitve (količina)

    Opomba: V vseh različicah, razen v Excelu 365, je treba INDEX MATCH vnesti kot formulo CSE array s pritiskom Ctrl + Shift + Enter. V Excelu 365, ki podpira dinamična polja, deluje tudi kot običajna formula.

    Za podrobno razlago formul glejte:

    • XLOOKUP z več merili
    • Formula INDEX MATCH z več merili

    Kako uporabiti VLOOKUP za pridobitev 2., 3. ali n-tega ujemanja

    Kot že veste, lahko Excelov VLOOKUP pridobi samo eno ustrezno vrednost, natančneje, vrne prvo najdeno ujemanje. Kaj pa, če je v vašem polju iskanja več ujemanj in želite pridobiti 2. ali 3. primerek? Naloga se zdi precej zapletena, vendar rešitev obstaja!

    Formula 1. Vlookup N-ti primer

    Recimo, da imate v enem stolpcu imena strank, v drugem stolpcu izdelke, ki so jih kupile, in da želite najti drugi ali tretji izdelek, ki ga je kupila določena stranka.

    Najpreprostejši način je, da na levo stran tabele dodamo pomožni stolpec, kot smo to storili v prvem primeru. Tokrat ga bomo napolnili z imeni strank in številkami dogodkov, kot je " John Doe1 ", " John Doe2 " itd.

    Če želite dobiti pojavnost, uporabite funkcijo COUNTIF z mešano referenco območja (prva referenca je absolutna, druga pa relativna, kot je $B$2:B2). Ker se relativna referenca spreminja glede na položaj celice, v katero se kopira formula, bo v vrstici 3 postala $B$2:B3, v vrstici 4 - $B$2:B4 in tako naprej.

    Formula, ki je povezana z imenom stranke (B2), ima naslednjo obliko:

    =B2&COUNTIF($B$2:B2, B2)

    Zgornja formula je v A2, nato pa jo kopirajte v poljubno število celic.

    Nato v ločeni celici (F1 in F2) vnesite ciljno ime in številko pojavitve ter s spodnjo formulo Vlookup poiščite določeno pojavitev:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    Formula 2. Vlookup 2. pojav

    Če iščete 2. primerek vrednosti iskanja, potem se lahko izognete pomožnemu stolpcu. Namesto tega dinamično ustvarite tabelsko polje z uporabo funkcije INDIRECT skupaj s funkcijo MATCH:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Kje:

    • E1 je iskalna vrednost
    • A2:A11 je območje iskanja
    • B11 je zadnja (spodnja desna) celica preglednice za iskanje

    Upoštevajte, da je zgornja formula napisana za poseben primer, ko se podatkovne celice v preglednici iskanja začnejo v vrstici 2. Če je vaša preglednica nekje na sredini lista, uporabite to univerzalno formulo, kjer je A1 zgornja leva celica preglednice iskanja, ki vsebuje glavo stolpca:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

    Kako deluje ta formula

    Tukaj je ključni del formule, ki ustvari dinamično območje pogleda :

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    Funkcija MATCH, konfigurirana za natančno ujemanje (0 v zadnjem argumentu), primerja ciljno ime (E1) s seznamom imen (A2:A11) in vrne položaj prvega najdenega ujemanja, ki je v našem primeru 3. To številko bomo uporabili kot koordinato začetne vrstice za območje vlookup, zato ji dodamo 2 (+1 za izključitev prvega primera in +1 za izključitev vrstice 1 z naslovi stolpcev).Uporabite lahko tudi možnost 1+ROW(A1), da samodejno izračunate potrebno prilagoditev na podlagi položaja vrstice v glavi (v našem primeru A1).

    Kot rezultat dobimo naslednji besedilni niz, ki ga INDIRECT pretvori v referenco območja:

    INDIRECT("A"&5&":B11") -> A5:B11

    To območje sega do table_array argumenta VLOOKUP, ki ga prisili, da začne iskati v vrstici 5, pri čemer izpusti prvi primerek vrednosti iskanja:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    Kako Vlookup in vrniti več vrednosti v Excelu

    Excelova funkcija VLOOKUP je zasnovana tako, da vrne samo eno ujemanje. Ali obstaja način za VLOOKUP več primerov? Da, obstaja, čeprav ni enostaven. To zahteva kombinirano uporabo več funkcij, kot so INDEX, SMALL in ROW je formula polja.

    V nadaljevanju lahko na primer poiščete vse pojavitve vrednosti iskanja F2 v območju iskanja B2:B16 in vrnete več zadetkov iz stolpca C:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    V delovni list lahko formulo vnesete na dva načina:

    1. V prvo celico vnesite formulo, pritisnite kombinacijo tipk Ctrl + Shift + Enter , nato pa jo povlecite navzdol v nekaj drugih celic.
    2. Izberite več sosednjih celic v enem stolpcu (F1:F11 na spodnji sliki zaslona), vnesite formulo in pritisnite kombinacijo tipk Ctrl + Shift + Enter, da jo dokončate.

    V vsakem primeru mora biti število celic, v katere vnesete formulo, enako ali večje od največjega števila možnih zadetkov.

    Za podrobno razlago logike formule in več primerov glejte Kako VLOOKUP več vrednosti v Excelu.

    Kako iskati v vrsticah in stolpcih (dvosmerno iskanje)

    Dvosmerno iskanje (znan tudi kot iskanje matrike ali 2-dimenzionalno iskanje ) je lepa beseda za iskanje vrednosti na presečišču določene vrstice in stolpca. V Excelu obstaja več različnih načinov za dvodimenzionalno iskanje, ker pa je v tem učbeniku poudarek na funkciji VLOOKUP, jo bomo seveda uporabili.

    V tem primeru bomo vzeli spodnjo tabelo z mesečno prodajo in pripravili formulo VLOOKUP, s katero bomo pridobili podatek o prodaji določenega izdelka v določenem mesecu.

    Pri imenih postavk v A2:A9, imenih mesecev v B1:F1, ciljni postavki v I1 in ciljnem mesecu v I2 je formula naslednja:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

    Kako deluje ta formula

    Jedro formule je standardna funkcija VLOOKUP, ki išče natančno ujemanje z iskano vrednostjo v I1. Ker pa ne vemo, v katerem stolpcu natančno je prodaja za določen mesec, ne moremo neposredno posredovati številke stolpca funkciji col_index_num Za iskanje tega stolpca uporabimo naslednjo funkcijo MATCH:

    MATCH(I2, A1:F1, 0)

    Prevedeno v slovenščino formula pravi: poišči vrednost I2 v A1:F1 in vrni njen relativni položaj v polju. Z vnosom 0 v tretji argument narekujete MATCH-u, da poišče vrednost, ki je natančno enaka vrednosti iskanja (to je tako, kot če bi uporabili FALSE za range_lookup argument VLOOKUP).

    Ker je na spletni strani Mar je v 4. stolpcu v pregledovalnem polju, funkcija MATCH vrne vrednost 4, ki se neposredno prenese v col_index_num argument VLOOKUP:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    Bodite pozorni, da čeprav se imena mesecev začnejo v stolpcu B, za polje iskanja uporabimo A1:I1. To storimo zato, da bi številka, ki jo vrne MATCH, ustrezala položaju stolpca v table_array VLOOKUP.

    Če želite izvedeti več načinov za matrično iskanje v Excelu, si oglejte poglavje INDEX MATCH MATCH in druge formule za dvodimenzionalno iskanje.

    Kako narediti več Vlookup v Excelu (vgnezdeni Vlookup)

    Včasih se lahko zgodi, da glavna tabela in tabela za iskanje nimata niti enega skupnega stolpca, zaradi česar ne morete izvesti Vlookup med dvema tabelama. Obstaja pa druga tabela, ki ne vsebuje informacij, ki jih iščete, vendar ima en skupni stolpec z glavno tabelo in drug skupni stolpec s tabelo za iskanje.

    Na spodnji sliki je prikazano stanje:

    Cilj je kopiranje cen v glavno tabelo na podlagi ID-ji predmetov . Težava je v tem, da tabela s cenami nima ID-ji predmetov , kar pomeni, da bomo morali v eni formuli izvesti dva Vlookup-a.

    Zaradi priročnosti najprej ustvarimo nekaj poimenovanih obsegov:

    • Preglednica 1 je poimenovana Izdelki (D3:E10)
    • Preglednica 2 se imenuje Cene ( G3:H10 )

    Tabele so lahko v istih ali različnih delovnih listih.

    Zdaj bomo izvedli tako imenovani dvojni Vlookup , znan tudi kot vgnezdeni Vlookup .

    Najprej naredite formulo VLOOKUP, da v preglednici 1 (imenovani Izdelki ) na podlagi identifikatorja predmeta (A3):

    =VLOOKUP(A3, Izdelki, 2, FALSE)

    Nato vnesite zgornjo formulo v lookup_value argument druge funkcije VLOOKUP, da bi iz preglednice 2 (imenovane Cene ) na podlagi imena izdelka, ki ga vrne vgnezdeni VLOOKUP:

    =VLOOKUP(VLOOKUP(A3, Izdelki, 2, FALSE), Cene, 2, FALSE)

    Spodnja slika prikazuje našo vgnezdeno formulo Vlookup v akciji:

    Kako dinamično pregledati več listov

    Včasih imate lahko podatke v isti obliki razdeljene na več delovnih listov, vaš cilj pa je, da iz določenega lista potegnete podatke glede na ključno vrednost v določeni celici.

    To boste morda lažje razumeli s primerom. Recimo, da imate nekaj regionalnih poročil o prodaji v enaki obliki in želite pridobiti podatke o prodaji določenega izdelka v določenih regijah:

    Podobno kot v prejšnjem primeru začnemo z opredelitvijo nekaj imen:

    • Območje A2:B5 v listu CA je poimenovano CA_Sales .
    • Območje A2:B5 v listu FL je poimenovano FL_Sales .
    • Območje A2:B5 v listu KS je poimenovano KS_Sales .

    Kot lahko vidite, imajo vsa poimenovana območja skupni del ( Prodaja ) in edinstvene dele ( CA , FL , KS ). Poskrbite, da boste območja poimenovali na podoben način, saj je to bistveno za formulo, ki jo bomo sestavili.

    Formula 1. INDIREKTNI VLOOKUP za dinamično pridobivanje podatkov iz različnih listov

    Če želite pridobiti podatke iz več listov, je najboljša rešitev formula VLOOKUP INDIRECT, ki je kompaktna in razumljiva.

    V tem primeru smo zbirno tabelo organizirali na ta način:

    • V A2 in A3 vnesite izdelke, ki vas zanimajo. To so naše iskalne vrednosti.
    • V B1, C1 in D1 vnesite edinstvene dele poimenovanih obsegov.

    Zdaj združimo celico z edinstvenim delom (B1) s skupnim delom ("_Sales") in dobljeni niz prenesemo v INDIRECT:

    INDIRECT(B$1&"_Sales")

    Funkcija INDIRECT pretvori niz v ime, ki ga Excel razume, in ga vstavi v polje table_array argument VLOOKUP:

    =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

    Zgornjo formulo prenesite v B2, nato pa jo kopirajte navzdol in na desno.

    Bodite pozorni, da smo v vrednosti iskanja ($A2) zaklenili koordinato stolpca z absolutnim sklicevanjem na celico, tako da stolpec ostane nespremenjen, ko se formula kopira v desno. V sklicevanju na B$1 smo zaklenili vrstico, ker želimo, da se spremeni koordinata stolpca in da se zagotovi ustrezen del imena INDIRECT glede na stolpec, v katerega se kopira formula:

    Če je vaša glavna tabela organizirana drugače, vrednosti iskanja v vrstici in edinstveni deli imen območij v stolpcu, morate zakleniti koordinato vrstice v vrednosti iskanja (B$1) in koordinato stolpca v delih imena ($A2):

    =VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)

    Formula 2. VLOOKUP in vgnezdeni IF za iskanje več listov

    Če imate samo dva ali tri liste za iskanje, lahko uporabite precej preprosto formulo VLOOKUP z vgnezdenimi funkcijami IF za izbiro pravilnega lista na podlagi ključne vrednosti v določeni celici:

    =VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,"")), 2, FALSE)

    Pri čemer je $A2 vrednost iskanja (ime elementa), B$1 pa vrednost ključa (stanje):

    V tem primeru vam ni treba opredeliti imen in lahko uporabite zunanje reference za sklicevanje na drug list ali delovni zvezek.

    Za več primerov formul glejte Kako VLOOKUP na več listih v Excelu.

    To je način uporabe VLOOKUP v Excelu. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Praktični delovni zvezek za prenos

    Primeri naprednih formul VLOOKUP (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.