Avansearre VLOOKUP yn Excel: meardere, dûbele, nested

  • Diel Dit
Michael Brown

Dizze foarbylden sille jo leare hoe't jo meardere kritearia Vlookup kinne, in spesifyk eksimplaar of alle wedstriden weromjaan, dynamyske Vlookup yn meardere blêden dwaan, en mear.

It is it twadde diel fan de searje dy't jo sil helpe de krêft fan Excel VLOOKUP te benutten. De foarbylden jouwe oan dat jo witte hoe't dizze funksje wurket. Sa net, dan is it logysk om te begjinnen mei it basisgebrûk fan VLOOKUP yn Excel.

Foardat ik fierder gean, lit my jo koart de syntaksis herinnerje:

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

No't elkenien op deselde side is, litte wy de avansearre VLOOKUP-formulefoarbylden fan tichterby besjen:

    Hoe kinne jo meardere kritearia Vlookup

    De Excel VLOOKUP-funksje is echt nuttich as it giet om it sykjen oer in databank foar in bepaalde wearde. It mist lykwols in wichtige funksje - syn syntaksis soarget foar mar ien opsykwearde. Mar wat as jo wolle opsykje mei ferskate betingsten? Der binne in pear ferskillende oplossings foar jo om út te kiezen.

    Formule 1. VLOOKUP mei twa kritearia

    Stel dat jo in list mei oarders hawwe en de kwantiteit fine wolle op basis fan 2 kritearia, Klantnamme en Produkt . In komplisearjende faktor is dat elke klant meardere produkten bestelde, lykas werjûn yn 'e tabel hjirûnder:

    In gewoane VLOOKUP-formule sil net wurkje yn dizze situaasje, om't it de earste fûn weromkomt wedstriid basearre op inregio's:

    Lykas yn it foarige foarbyld begjinne wy ​​mei it definiearjen fan in pear nammen:

    • Rang A2:B5 yn CA-blêd wurdt neamd CA_Sales .
    • Berik A2:B5 yn FL-blêd wurdt neamd FL_Sales .
    • Berik A2:B5 yn KS-blêd wurdt neamd KS_Sales .

    Sa't jo sjen kinne, hawwe alle neamde berik in mienskiplik diel ( Sales ) en unike dielen ( CA , FL , KS ). Soargje asjebleaft jo berik op in fergelykbere manier te neamen, om't it essensjeel is foar de formule dy't wy sille bouwe.

    Formule 1. INDIREKTE VLOOKUP om dynamysk gegevens fan ferskate blêden te lûken

    As jo ​​taak is it opheljen fan gegevens fan meardere blêden, in VLOOKUP INDIREKTE formule is de bêste oplossing - kompakt en maklik te begripen.

    Foar dit foarbyld organisearje wy de gearfettingstabel op dizze manier:

    • Fier de produkten fan belang yn A2 en A3. Dat binne ús opsykwearden.
    • Fier de unike dielen fan 'e neamde berik yn B1, C1 en D1 yn.

    En no ferbine wy ​​de sel mei it unike diel (B1) gear. mei it mienskiplike diel ("_Sales"), en fier de resultearjende tekenrige nei INDIRECT:

    INDIRECT(B$1&"_Sales")

    De funksje INDIRECT transformeart de tekenrige yn in namme dy't Excel kin begripe, en jo sette it yn it tabel_array argumint fan VLOOKUP:

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

    De boppesteande formule giet nei B2, en dan kopiearje jo it nei ûnderen en nei rjochts.

    Asjebleaft let op dat, yn 'e opsykwearde ($A2),wy hawwe de kolomkoördinaat beskoattele mei absolute selferwizing, sadat de kolom fêst bliuwt as de formule nei rjochts kopiearre wurdt. Yn 'e B$1-referinsje hawwe wy de rige beskoattele om't wy wolle dat de kolomkoördinaat feroaret en in passend nammediel oan INDIRECT leveret ôfhinklik fan de kolom wêryn't de formule kopiearre is:

    As jo ​​haadtabel oars organisearre is, de opsykwearden yn in rige en unike dielen fan 'e beriknammen yn in kolom, dan moatte jo de rigekoördinaat yn 'e opsykwearde (B$1) en de kolomkoördinaat yn 'e nammedielen beskoattelje ($A2):

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

    Formule 2. VLOOKUP en geneste IF's om meardere blêden op te sykjen

    Yn situaasje as jo hawwe mar twa of trije opsykblêden kinne jo in frij ienfâldige VLOOKUP-formule brûke mei geneste IF-funksjes om it juste blêd te selektearjen basearre op de kaaiwearde yn in bepaalde sel:

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

    Wêr $A2 is de opsykwearde (itemnamme) en B$1 is de kaaiwearde (tastân):

    Yn dit gefal hoege jo net needsaaklik nammen te definiearjen en kinne jo eksterne brûke ferwizings om te ferwizen nei in oar blêd of wurkboek.

    Foar mear formule exa mples, sjoch asjebleaft Hoe kinne jo VLOOKUP oer meardere blêden yn Excel brûke.

    Dat is hoe't jo VLOOKUP brûke yn Excel. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Oefeningswurkboek foar download

    Avansearre VLOOKUP-formulefoarbylden (.xlsxtriem)

    ienige opsykwearde dy't jo oantsjutte.

    Om dit te oerwinnen kinne jo in helpkolom tafoegje en dêr de wearden fan twa opsykkolommen ( Klant en Produkt ) gearfoegje. It is wichtich dat de helperkolom de kolom meast lofts is yn 'e tabelarray, om't it is wêr't Excel VLOOKUP altyd siket nei de opsykwearde.

    Dus, foegje in kolom ta oan de lofterkant fan jo tabel en kopiearje de ûndersteande formule oer dy kolom. Dit sil de helpkolom befolke mei de wearden fan de kolommen B en C (it spaasjekarakter wurdt der tuskenyn gearfoege foar bettere lêsberens):

    =B2&" "&C2

    En brûk dan in standert VLOOKUP-formule en plak beide kritearia yn it argumint lookup_value , skieden mei in spaasje:

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

    Of, ynfiere de kritearia yn aparte sellen (G1 en G2 yn ús gefal) en keppelje dy oan sellen:

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

    Om't wy in wearde werom wolle út kolom D, dy't fjirde is yn 'e tabelarray, brûke wy 4 foar col_index_num . It argumint range_lookup is ynsteld op FALSE om in eksakte oerienkomst te Vlookup. De skermôfbylding hjirûnder lit it resultaat sjen:

    As jo ​​opsyktabel yn in oar blêd is, befetsje de namme fan it blêd yn jo VLOOKUP-formule. Bygelyks:

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

    As alternatyf, meitsje in beneamd berik foar de opsyktabel (bygelyks Orders ) om de formule makliker te lêzen te meitsjen:

    =VLOOKUP(G1&" "&G2, Orders, 4, FALSE)

    Sjoch asjebleaft Hoe kinne foar mear ynformaasjeVlookup fan in oar blêd yn Excel.

    Opmerking. Foar de formule om goed te wurkjen, moatte de wearden yn 'e helperkolom krekt op deselde wize gearfoege wurde as yn it argumint lookup_value . Wy hawwe bygelyks in spaasjekarakter brûkt om de kritearia te skieden yn sawol de helpkolom (B2&" "& C2) as VLOOKUP-formule (G1&" "&G2).

    Formule 2. Excel VLOOKUP mei meardere betingsten

    Yn teory kinne jo de boppesteande oanpak brûke foar Vlookup mear as twa kritearia. D'r binne lykwols in pear warskôgings. As earste is in opsykwearde beheind ta 255 tekens, en twad kin it ûntwerp fan it wurkblêd it tafoegjen fan in helpkolom net tastean.

    Gelokkich biedt Microsoft Excel faak mear as ien manier om itselde te dwaan. Om meardere kritearia te Vlookup, kinne jo gebrûk meitsje fan of in INDEX MATCH kombinaasje of de XLOOKUP funksje koartlyn yntrodusearre yn Office 365. 1>Klantnamme en Produkt ), brûk ien fan de folgjende formules:

    =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)

    Wêr:

    • G1 is kritearia 1 (datum)
    • G2 is kritearia 2 (klantnamme)
    • G3 is kritearia 3 (produkt)
    • A2:A11 is opsykje berik 1 (datums)
    • B2:B11 is opsykberik 2 (klantnammen)
    • C2:C11 is opsykberik 3 (produkten)
    • D2:D11 is it rendemint berik (hoewol)

    Opmerking. Yn alle ferzjes útsein Excel 365, INDEXMATCH moat wurde ynfierd as in CSE-arrayformule troch te drukken op Ctrl + Shift + Enter. Yn Excel 365 dat dynamyske arrays stipet wurket it ek as in reguliere formule.

    Sjoch foar de detaillearre útlis fan de formules:

    • XLOOKUP mei meardere kritearia
    • INDEX MATCH-formule mei meardere kritearia

    Hoe kinst brûk VLOOKUP om 2e, 3e of n-de wedstriid te krijen

    Lykas jo al witte, kin Excel VLOOKUP mar ien oerienkommende wearde ophelje, krekter, it jout de earste fûn wedstriid werom. Mar wat as d'r ferskate wedstriden binne yn jo opsykarray en jo wolle de 2e of 3e eksimplaar krije? De taak klinkt frij yngewikkeld, mar de oplossing bestiet wol!

    Formule 1. Vlookup Nde eksimplaar

    Stel dat jo klantnammen hawwe yn ien kolom, de produkten dy't se kocht hawwe yn in oare, en jo sykje om it 2e of 3e produkt te finen dat kocht is troch in opjûne klant.

    De ienfâldichste manier is om in helpkolom oan 'e lofterkant fan' e tabel ta te foegjen lykas wy diene yn it earste foarbyld. Mar dizze kear sille wy it ynfolje mei klantnammen en foarkommende nûmers lykas " John Doe1 ", " John Doe2 ", ensfh.

    Om it foarkommen te krijen, brûk de COUNTIF-funksje mei in referinsje foar mingd berik (de earste referinsje is absolút en de twadde is relatyf lykas $B$2:B2). Sûnt de relative referinsje feroaret op basis fan in posysje fan 'e sel wêr't de formule kopiearre wurdt, sil it yn rigel 3 $B$2:B3 wurde, yn rige 4 -$B$2:B4, ensfh.

    Ferbûn mei de klantnamme (B2), nimt de formule dizze foarm oan:

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

    De boppesteande formule giet nei A2 , en dan kopiearje jo it nei safolle sellen as nedich is.

    Dernei, ynfiere de doelnamme en it foarkommen nûmer yn aparte sellen (F1 en F2), en brûk de ûndersteande formule om in spesifyk foarkommen te Vlookup:

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

    Formule 2. Vlookup 2e foarkommen

    As jo ​​sykje nei de 2e eksimplaar fan 'e opsykwearde, dan kinne jo dwaan sûnder de helperkolom. Meitsje ynstee de tabelarray dynamysk oan troch de funksje INDIRECT te brûken tegearre mei MATCH:

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

    Wêr:

    • E1 is de opsykwearde
    • A2:A11 is it opsykberik
    • B11 is de lêste (rjochtsûnder) sel fan de opsyktabel

    Tink derom dat de boppesteande formule is skreaun foar in spesifyk gefal wêryn gegevenssellen yn 'e opsyktabel begjinne yn rige 2. As jo ​​tabel earne yn' e midden fan it blêd is, brûk dan dizze universele formule, wêrby't A1 de sel boppe-lofts is fan 'e opsyktabel mei dêryn in kolomkop:

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

    Hoe't dizze formule wurket

    Hjir is it haaddiel fan 'e formule dy't in dynamysk vlookup-berik makket:

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

    De MATCH-funksje konfigurearre foar eksakte oerienkomst (0 yn it lêste argumint) fergeliket de doelnamme (E1) mei de list mei nammen (A2:A11) en jout de posysje fan de earste fûn werom wedstriid, dat is 3yn ús gefal. Dit nûmer sil brûkt wurde as de startrige koördinaat foar it vlookup-berik, dus foegje wy 2 ta (+1 om it earste eksimplaar út te sluten en +1 om rige 1 út te sluten mei de kolomkoppen). As alternatyf kinne jo 1+RIW(A1) brûke om de nedige oanpassing automatysk te berekkenjen op basis fan de posysje fan de koprige (A1 yn ús gefal).

    As resultaat krije wy de folgjende tekststring, dy't INDIRECT konvertearret nei in berikferwizing:

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

    Dit berik giet nei it tabel_array argumint fan VLOOKUP en twingt it om te begjinnen mei sykjen yn rige 5, wêrtroch it earste eksimplaar fan de opsykwearde:

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

    Hoe kinne jo Vlookup en meardere wearden weromjaan yn Excel

    De Excel VLOOKUP-funksje is ûntworpen om mar ien wedstriid werom te jaan. Is d'r in manier om meardere eksimplaren te Vlookup? Ja, der is, hoewol net in maklike. Dit fereasket in kombinearre gebrûk fan ferskate funksjes lykas INDEX, SMALL en ROW is in array-formule.

    Bygelyks kinne ûndersteande alle foarkommende gefallen fan de opsykwearde F2 yn it opsykberik B2:B16 fine en meardere weromjaan komt oerien mei kolom C:

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

    Der binne 2 manieren om de formule yn jo wurkblêd yn te fieren:

    1. Typ de formule yn 'e earste sel, druk op Ctrl + Shift + Enter , en sleep it dan nei in pear mear sellen.
    2. Selektearje ferskate neistlizzende sellen yn ien kolom (F1:F11 yn 'e skermôfbylding hjirûnder), typ de formule en druk op Ctrl +Shift + Enter om it te foltôgjen.

    Hoe dan ek, it oantal sellen wêryn jo de formule ynfiere moat gelyk wêze oan of grutter dan it maksimum oantal mooglike oerienkomsten.

    Foar de detaillearre útlis fan 'e formulelogika en mear foarbylden, sjoch asjebleaft Hoe VLOOKUP meardere wearden yn Excel.

    Hoe Vlookup yn rigen en kolommen (twa-wize opsykje)

    Twa-wize opsykje (aka matrixopsykje of 2-diminsjoneel opsykje ) is in fancy wurd foar it opsykjen fan in wearde op it krúspunt fan in bepaalde rige en kolom. D'r binne in pear ferskillende manieren om twadiminsjonale opsykjen yn Excel te dwaan, mar om't de fokus fan dizze tutorial op 'e VLOOKUP-funksje leit, sille wy it fansels brûke.

    Foar dit foarbyld nimme wy it hjirûnder. tabel mei moanlikse ferkeap en wurkje in VLOOKUP-formule út om it ferkeapsifer foar in spesifyk item yn in opjûne moanne op te heljen.

    Mei itemnammen yn A2:A9, moannenammen yn B1:F1, it doelpunt yn I1 en de doelmoanne yn I2, de formule giet as folget:

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

    Hoe't dizze formule wurket

    De kearn fan 'e formule is de standert VLOOKUP-funksje dy't siket nei in krekte oerienkomst mei de opsykwearde yn I1. Mar om't wy net witte yn hokker kolom de ferkeap foar in spesifike moanne krekt binne, kinne wy ​​it kolomnûmer net direkt oan it argumint col_index_num leverje. Om dy kolom te finen, brûke wy de folgjende MATCHfunksje:

    MATCH(I2, A1:F1, 0)

    Oerset yn it Ingelsk seit de formule: sykje de I2-wearde op yn A1:F1 en jou de relative posysje werom yn 'e array. Troch 0 oan te jaan oan it 3e argumint, jouwe jo MATCH de opdracht om de wearde krekt gelyk te finen oan de opsykwearde (it is as it brûken fan FALSE foar it range_lookup argumint fan VLOOKUP).

    Sûnt Mar is yn 'e 4e kolom yn' e sykmasine, de MATCH-funksje jout 4 werom, dy't direkt nei it col_index_num argumint fan VLOOKUP:

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

    betelje omtinken dat hoewol't de moanne nammen begjinne yn kolom B, wy brûke A1: I1 foar it opsykje array. Dit wurdt dien om it nûmer dat weromjûn wurdt troch MATCH oerien te kommen mei de posysje fan de kolom yn tabel_array fan VLOOKUP.

    Om mear manieren te learen om matrix-sykjen yn Excel út te fieren, sjoch INDEX MATCH MATCH en oare formules foar 2-diminsjonale opsykje.

    Hoe kinne jo meardere Vlookup dwaan yn Excel (neste Vlookup)

    Soms kin it barre dat jo haadtabel en opsyktabel gjin inkele kolom hawwe yn mienskiplik, dy't foarkomt dat jo in dwaan in Vlookup tusken twa tabellen. D'r bestiet lykwols in oare tabel, dy't net de ynformaasje befettet wêr't jo nei sykje, mar ien mienskiplike kolom hat mei de haadtabel en in oare mienskiplike kolom mei de opsyktabel.

    Yn ûndersteande ôfbylding yllustrearret de situaasje:

    It doel is om prizen te kopiearjen nei de haadtabel basearre op Item ID's . It probleem is dat de tabel mei prizen net de Item ID's hat, wat betsjut dat wy twa Vlookups yn ien formule moatte dwaan.

    Foar it gemak, litte wy in pear oanmeitsje neamde berik earst:

    • Opsyktabel 1 wurdt neamd Produkten (D3:E10)
    • Opsyktabel 2 wurdt neamd Prizen ( G3:H10 )

    De tabellen kinne yn deselde of ferskillende wurkblêden wêze.

    En no sille wy de saneamde dûbele Vlookup útfiere , aka nested Vlookup .

    Maak earst in VLOOKUP-formule om de produktnamme te finen yn de Lookup-tabel 1 (neamd Products ) basearre op it item id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Folgjende, set de boppesteande formule yn it lookup_value argumint fan in oare VLOOKUP-funksje om prizen te heljen fan Lookup-tabel 2 (neamd Prizen ) basearre op de produktnamme weromjûn troch de geneste VLOOKUP:

    =VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)

    De skermôfbylding hjirûnder lit ús geneste Vlookup-formule yn aksje sjen:

    Hoe kinne jo meardere blêden dynamysk opsykje

    Soms, y Jo kinne gegevens yn itselde formaat hawwe ferdield oer ferskate wurkblêden. En jo doel is om gegevens fan in spesifyk blêd te lûken ôfhinklik fan de kaaiwearde yn in opjûne sel.

    Dit kin makliker te begripen wêze fan in foarbyld. Litte wy sizze, jo hawwe in pear regionale ferkeaprapporten yn itselde formaat, en jo sykje de ferkeapsifers foar in spesifyk produkt yn bepaalde

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.