Napredni VLOOKUP u Excelu: višestruki, dvostruki, ugniježđeni

  • Podijeli Ovo
Michael Brown

Ovi primjeri će vas naučiti kako Vlookupirati više kriterija, vratiti određenu instancu ili sva podudaranja, raditi dinamički Vlookup u više listova i više.

To je drugi dio serija koja će vam pomoći da iskoristite snagu Excel VLOOKUP-a. Primjeri pokazuju da znate kako ova funkcija radi. Ako ne, razumno je započeti s osnovnim korištenjem VLOOKUP-a u Excelu.

Prije nego što nastavim, dopustite mi da vas ukratko podsjetim na sintaksu:

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

Sada kada su svi na istoj stranici, pogledajmo pobliže primjere napredne VLOOKUP formule:

    Kako Vlookup više kriterija

    Excel Funkcija VLOOKUP stvarno je korisna kada je u pitanju pretraživanje baze podataka za određenu vrijednost. Međutim, nedostaje mu važna značajka - njegova sintaksa dopušta samo jednu vrijednost pretraživanja. Ali što ako želite tražiti uz nekoliko uvjeta? Postoji nekoliko različitih rješenja za odabir.

    Formula 1. VLOOKUP s dva kriterija

    Pretpostavimo da imate popis narudžbi i želite pronaći količinu na temelju 2 kriterija, Ime kupca i Proizvod . Čimbenik koji komplicira je to što je svaki kupac naručio više proizvoda, kao što je prikazano u tablici u nastavku:

    Uobičajena VLOOKUP formula neće raditi u ovoj situaciji jer vraća prvi pronađeni podudaranje na temelju aregije:

    Kao u prethodnom primjeru, počinjemo s definiranjem nekoliko naziva:

    • Raspon A2:B5 u CA listu nazvan je CA_Sales .
    • Raspon A2:B5 u FL listu nazvan je FL_Sales .
    • Raspon A2:B5 u KS listu nazvan je KS_Sales .

    Kao što vidite, svi imenovani rasponi imaju zajednički dio ( Prodaja ) i jedinstvene dijelove ( CA , FL , KS ). Obavezno imenujete svoje raspone na sličan način jer je to bitno za formulu koju ćemo izraditi.

    Formula 1. INDIREKTNI VLOOKUP za dinamičko povlačenje podataka s različitih listova

    Ako je vaš zadatak je dohvaćanje podataka s više listova, VLOOKUP INDIRECT formula je najbolje rješenje – kompaktna i lako razumljiva.

    Za ovaj primjer organiziramo tablicu sažetka na ovaj način:

    • Unesite proizvode od interesa u A2 i A3. To su naše vrijednosti pretraživanja.
    • Unesite jedinstvene dijelove imenovanih raspona u B1, C1 i D1.

    A sada spajamo ćeliju koja sadrži jedinstveni dio (B1) sa zajedničkim dijelom ("_Sales") i unesite rezultirajući niz u INDIRECT:

    INDIRECT(B$1&"_Sales")

    Funkcija INDIRECT transformira niz u naziv koji Excel može razumjeti, a vi ga stavite u argument table_array VLOOKUP-a:

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

    Gornja formula ide na B2, a zatim je kopirate dolje i desno.

    Molimo obratite pozornost da, u vrijednosti pretraživanja ($A2),zaključali smo koordinate stupca s apsolutnom referencom ćelije tako da stupac ostaje fiksan kada se formula kopira udesno. U referenci B$1 zaključali smo red jer želimo da se koordinata stupca promijeni i da se INDIRECT dodijeli odgovarajući dio imena ovisno o stupcu u koji je formula kopirana:

    Ako je vaša glavna tablica drugačije organizirana, vrijednosti pretraživanja u retku i jedinstveni dijelovi naziva raspona u stupcu, tada biste trebali zaključati koordinatu retka u vrijednosti pretraživanja (B$1) i koordinatu stupca u dijelovima imena ($A2):

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

    Formula 2. VLOOKUP i ugniježđeni IF-ovi za traženje više listova

    U situaciji kada imate samo dva ili tri lista za pretraživanje, možete upotrijebiti prilično jednostavnu VLOOKUP formulu s ugniježđenim IF funkcijama za odabir ispravnog lista na temelju vrijednosti ključa u određenoj ćeliji:

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

    Gdje je $A2 je vrijednost traženja (naziv stavke), a B$1 je ključna vrijednost (stanje):

    U ovom slučaju ne morate nužno definirati nazive i možete koristiti vanjske reference za upućivanje na drugi list ili radnu knjigu.

    Za više formula exa mples, pogledajte Kako VLOOKUP na više listova u Excelu.

    Tako se koristi VLOOKUP u Excelu. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!

    Radna knjiga za vježbe za preuzimanje

    Primjeri naprednih VLOOKUP formula (.xlsxdatoteka)

    jednu vrijednost traženja koju navedete.

    Da biste to prevladali, možete dodati pomoćni stupac i tamo spojiti vrijednosti iz dvaju stupaca pretraživanja ( Kupac i Proizvod ). Važno je da pomoćni stupac bude krajnji lijevi stupac u polju tablice jer to je mjesto gdje Excel VLOOKUP uvijek traži vrijednost traženja.

    Dakle, dodajte stupac lijevo od vašeg tablicu i kopirajte donju formulu preko tog stupca. Ovo će popuniti pomoćni stupac vrijednostima iz stupaca B i C (razmak je spojen između radi bolje čitljivosti):

    =B2&" "&C2

    A zatim upotrijebite standardnu ​​VLOOKUP formulu i postavite oba kriterija u argumentu lookup_value , odvojena razmakom:

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

    Ili, unesite kriterije u zasebne ćelije (G1 i G2 u našem slučaju) i spojite ih ćelije:

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

    Kako želimo vratiti vrijednost iz stupca D, koji je četvrti u nizu tablice, koristimo 4 za col_index_num . Argument range_lookup postavljen je na FALSE za točno podudaranje Vlookupa. Snimka zaslona u nastavku prikazuje rezultat:

    U slučaju da je vaša tablica pretraživanja na drugom listu , uključite naziv lista u svoju VLOOKUP formulu. Na primjer:

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

    Alternativno, stvorite imenovani raspon za tablicu pretraživanja (recimo, Narudžbe ) kako biste formulu učinili lakšom za čitanje:

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

    Za više informacija pogledajte KakoVlookup s drugog lista u Excelu.

    Napomena. Da bi formula radila ispravno, vrijednosti u pomoćnom stupcu trebale bi biti povezane na potpuno isti način kao u argumentu lookup_value . Na primjer, upotrijebili smo razmak za odvajanje kriterija u pomoćnom stupcu (B2&" "&C2) i VLOOKUP formuli (G1&" "&G2).

    Formula 2. Excel VLOOKUP s više uvjeta

    U teoriji, gornji pristup Vlookupu možete koristiti za više od dva kriterija. Međutim, postoji nekoliko upozorenja. Kao prvo, vrijednost traženja ograničena je na 255 znakova, a kao drugo, dizajn radnog lista možda neće dopustiti dodavanje pomoćnog stupca.

    Srećom, Microsoft Excel često nudi više od jednog načina da učinite istu stvar. Za Vlookup više kriterija možete upotrijebiti ili kombinaciju INDEX MATCH ili funkciju XLOOKUP nedavno uvedenu u Office 365.

    Na primjer, za traženje na temelju 3 različite vrijednosti ( Datum , Ime kupca i Proizvod ), koristite jednu od sljedećih formula:

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

    Gdje:

    • G1 je kriterij 1 (datum)
    • G2 je kriterij 2 (ime kupca)
    • G3 je kriterij 3 (proizvod)
    • A2:A11 je traženje raspon 1 (datumi)
    • B2:B11 je raspon traženja 2 (imena kupaca)
    • C2:C11 je raspon traženja 3 (proizvodi)
    • D2:D11 je povrat raspon (količina)

    Napomena. U svim verzijama osim Excel 365, INDEXMATCH treba unijeti kao formulu CSE polja pritiskom na Ctrl + Shift + Enter. U programu Excel 365 koji podržava dinamičke nizove također radi kao obična formula.

    Za detaljno objašnjenje formula pogledajte:

    • XLOOKUP s više kriterija
    • FORMULA INDEX MATCH s više kriterija

    Kako koristite VLOOKUP za dobivanje 2., 3. ili n-tog podudaranja

    Kao što već znate, Excel VLOOKUP može dohvatiti samo jednu odgovarajuću vrijednost, točnije, vraća prvo pronađeno podudaranje. Ali što ako postoji nekoliko podudaranja u vašem nizu pretraživanja i želite dobiti 2. ili 3. instancu? Zadatak zvuči prilično zamršeno, ali rješenje postoji!

    Formula 1. Vlookup N-ta instanca

    Pretpostavimo da imate imena kupaca u jednom stupcu, proizvode koje su kupili u drugom, a vi tražite pronaći 2. ili 3. proizvod koji je kupio određeni kupac.

    Najjednostavniji način je dodati pomoćni stupac lijevo od tablice kao što smo učinili u prvom primjeru. Ali ovaj put ćemo ga popuniti imenima kupaca i brojevima pojavljivanja kao što su " John Doe1 ", " John Doe2 ", itd.

    Da biste dobili pojavu, koristite funkciju COUNTIF s referencom mješovitog raspona (prva referenca je apsolutna, a druga je relativna kao $B$2:B2). Budući da se relativna referenca mijenja na temelju položaja ćelije u koju se kopira formula, u retku 3 postat će $B$2:B3, u retku 4 -$B$2:B4, i tako dalje.

    Spojena s imenom kupca (B2), formula ima ovaj oblik:

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

    Gornja formula ide na A2 , a zatim ga kopirate u onoliko ćelija koliko je potrebno.

    Nakon toga unesite ciljni naziv i broj pojavljivanja u zasebne ćelije (F1 i F2) i upotrijebite donju formulu za Vlookup određenog pojavljivanja:

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

    Formula 2. Vlookup 2. pojavljivanje

    Ako tražite 2. instancu vrijednosti pretraživanja, tada možete učiniti bez pomoćnog stupca. Umjesto toga, dinamički izradite polje tablice pomoću funkcije INDIRECT zajedno s MATCH:

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

    Gdje je:

    • E1 vrijednost pretraživanja
    • A2:A11 je raspon pretraživanja
    • B11 je zadnja (donja desna) ćelija tablice pretraživanja

    Imajte na umu da gornja formula napisana je za poseban slučaj kada podatkovne ćelije u tablici pretraživanja počinju u retku 2. Ako je vaša tablica negdje u sredini lista, upotrijebite ovu univerzalnu formulu, gdje je A1 gornja lijeva ćelija tablice pretraživanja koja sadrži zaglavlje stupca:

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

    Kako ova formula funkcionira

    Ovdje je ključni dio formule koji stvara dinamički vlookup raspon :

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

    Funkcija MATCH konfigurirana za točno podudaranje (0 u zadnjem argumentu) uspoređuje ime cilja (E1) s popisom imena (A2:A11) i vraća poziciju prvog pronađenog utakmica, koja je 3u našem slučaju. Ovaj će se broj koristiti kao početna koordinata retka za raspon vlookupa, pa mu dodajemo 2 (+1 za izuzimanje prve instance i +1 za izuzimanje reda 1 sa zaglavljima stupaca). Alternativno, možete koristiti 1+RED(A1) za automatski izračun potrebne prilagodbe na temelju položaja retka zaglavlja (A1 u našem slučaju).

    Kao rezultat, dobivamo sljedeći tekstualni niz, koji INDIRECT pretvara u referencu raspona:

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

    Ovaj raspon ide na argument table_array VLOOKUP-a prisiljavajući ga da započne pretraživanje u retku 5, izostavljajući prvu instancu vrijednost traženja:

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

    Kako Vlookup i vratiti više vrijednosti u Excelu

    Funkcija Excel VLOOKUP dizajnirana je da vrati samo jedno podudaranje. Postoji li način za Vlookup više instanci? Da, postoji, iako nije lako. To zahtijeva kombiniranu upotrebu nekoliko funkcija kao što su INDEX, SMALL i ROW je formula polja.

    Na primjer, dolje može pronaći sva pojavljivanja vrijednosti pretraživanja F2 u rasponu pretraživanja B2:B16 i vratiti višestruke odgovara iz stupca C:

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

    Postoje 2 načina za unos formule u vaš radni list:

    1. Upišite formulu u prvu ćeliju, pritisnite Ctrl + Shift + Enter , a zatim je povucite dolje do još nekoliko ćelija.
    2. Odaberite nekoliko susjednih ćelija u jednom stupcu (F1:F11 na snimci zaslona u nastavku), upišite formulu i pritisnite Ctrl +Shift + Enter da biste je dovršili.

    U svakom slučaju, broj ćelija u koje unosite formulu trebao bi biti jednak ili veći od maksimalnog broja mogućih podudaranja.

    Za detaljno objašnjenje logike formule i više primjera pogledajte Kako VLOOKUP više vrijednosti u Excelu.

    Kako VLOOKUP u recima i stupcima (dvosmjerno pretraživanje)

    Dvosmjerno traženje (aka matrično traženje ili 2-dimenzionalno traženje ) je zgodna riječ za traženje vrijednosti na sjecištu određeni redak i stupac. Postoji nekoliko različitih načina za dvodimenzionalno traženje u Excelu, ali budući da je fokus ovog vodiča na funkciji VLOOKUP, prirodno ćemo je koristiti.

    Za ovaj primjer uzet ćemo donji tablicu s mjesečnom prodajom i razradite VLOOKUP formulu za dohvaćanje brojke prodaje za određenu stavku u određenom mjesecu.

    S nazivima stavki u A2:A9, nazivima mjeseci u B1:F1, ciljnom stavkom u I1 i ciljni mjesec u I2, formula je sljedeća:

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

    Kako ova formula funkcionira

    Srž formule je standardna VLOOKUP funkcija koja traži točno podudaranje s traženom vrijednošću u I1. Ali budući da ne znamo u kojem točno stupcu je prodaja za određeni mjesec, ne možemo unijeti broj stupca izravno u argument col_index_num . Da bismo pronašli taj stupac, koristimo sljedeći MATCHfunction:

    MATCH(I2, A1:F1, 0)

    Prevedeno na engleski, formula kaže: potražite vrijednost I2 u A1:F1 i vratite njen relativni položaj u nizu. Dostavljanjem 0 trećem argumentu dajete instrukciju MATCH-u da pronađe vrijednost točno jednaku vrijednosti traženja (to je kao korištenje FALSE za argument range_lookup VLOOKUP-a).

    Od Mar je u 4. stupcu u nizu pretraživanja, funkcija MATCH vraća 4, što ide izravno na argument col_index_num funkcije VLOOKUP:

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

    Molimo obratite pozornost da, iako nazivi mjeseci počinju u stupcu B, koristimo A1:I1 za niz pretraživanja. Ovo se radi kako bi broj koji vraća MATCH odgovarao poziciji stupca u table_array VLOOKUP-a.

    Da biste saznali više načina za traženje matrice u Excelu, pogledajte INDEX MATCH MATCH i druge formule za 2-dimenzionalno pretraživanje.

    Kako napraviti višestruki Vlookup u Excelu (ugniježđeni Vlookup)

    Ponekad se može dogoditi da vaša glavna tablica i pregledna tablica nemaju niti jedan stupac u common, što vas sprječava da napravite Vlookup između dvije tablice. Međutim, postoji još jedna tablica koja ne sadrži informacije koje tražite, ali ima jedan zajednički stupac s glavnom tablicom i drugi zajednički stupac s tablicom za pretraživanje.

    Slika u nastavku prikazuje situaciju:

    Cilj je kopirati cijene u glavnu tablicu na temelju ID-ovi stavki . Problem je u tome što tablica koja sadrži cijene nema ID stavke , što znači da ćemo morati napraviti dva Vlookupa u jednoj formuli.

    Radi praktičnosti, kreirajmo nekoliko prvo imenovani rasponi:

    • Tablica praćenja 1 naziva se Proizvodi (D3:E10)
    • Tablica pretraživanja 2 naziva se Cijene ( G3:H10 )

    Tablice mogu biti u istim ili različitim radnim listovima.

    A sada ćemo izvesti takozvani double Vlookup , poznat i kao ugniježđeni Vlookup .

    Prvo napravite VLOOKUP formulu da biste pronašli naziv proizvoda u tablici pretraživanja 1 (pod nazivom Proizvodi ) na temelju stavke id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Zatim stavite gornju formulu u lookup_value argument druge VLOOKUP funkcije da biste povukli cijene iz Lookup tablice 2 (pod nazivom Cijene ) na temelju naziva proizvoda koji vraća ugniježđeni VLOOKUP:

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

    Snimak zaslona u nastavku prikazuje našu ugniježđenu Vlookup formulu na djelu:

    Kako dinamički Vlookup više listova

    Ponekad, y možda imate podatke u istom formatu podijeljene na nekoliko radnih listova. A vaš je cilj izvući podatke s određenog lista ovisno o ključnoj vrijednosti u danoj ćeliji.

    Ovo bi moglo biti lakše razumjeti iz primjera. Recimo, imate nekoliko regionalnih izvješća o prodaji u istom formatu i želite dobiti podatke o prodaji za određeni proizvod u određenim

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.