Napredno VLOOKUP u Excelu: višestruko, dvostruko, ugniježđeno

  • 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 na više listova i još mnogo toga.

To je drugi dio serija koja će vam pomoći da iskoristite moć Excel VLOOKUP-a. Primjeri sugeriraju da znate kako ova funkcija funkcionira. Ako nije, razumno je početi s osnovnim korištenjem VLOOKUP-a u Excel-u.

Prije nego što krenemo dalje, dozvolite mi da vas ukratko podsjetim na sintaksu:

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

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

    Kako pregledati više kriterija

    Excel Funkcija VLOOKUP je zaista korisna kada je u pitanju traženje određene vrijednosti u bazi podataka. Međutim, nedostaje mu važna karakteristika - njegova sintaksa dozvoljava samo jednu vrijednost pretraživanja. Ali šta ako želite da pogledate sa nekoliko uslova? Postoji nekoliko različitih rješenja između kojih možete izabrati.

    Formula 1. VLOOKUP sa dva kriterija

    Pretpostavimo da imate listu narudžbi i želite pronaći količinu na osnovu 2 kriterija, Ime kupca i Proizvod . Komplikujući faktor je to što je svaki kupac naručio više proizvoda, kao što je prikazano u tabeli ispod:

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

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

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

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

    Formula 1. INDIREKTNA VLOOKUP za dinamičko povlačenje podataka iz različitih listova

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

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

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

    I sada, spajamo ćeliju koja sadrži jedinstveni dio (B1) sa zajedničkim dijelom ("_Sales") i dostavite rezultirajući niz na INDIRECT:

    INDIRECT(B$1&"_Sales")

    Funkcija INDIRECT transformira niz u ime koje Excel može razumjeti, a vi ga stavite u argument table_array VLOOKUP:

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

    Gorenja formula ide u B2, a zatim je kopirate dolje i desno.

    Molimo obratite pažnju da, u vrijednosti pretraživanja ($A2),zaključali smo koordinate kolone sa apsolutnom referencom ćelije tako da kolona ostaje fiksna kada se formula kopira udesno. U referenci B$1, zaključali smo red jer želimo da se koordinate stupca promijeni i dostavi odgovarajući dio imena u INDIRECT u zavisnosti od kolone u koju je formula kopirana:

    Ako je vaša glavna tabela drugačije organizirana, vrijednosti pretraživanja u redu i jedinstveni dijelovi imena raspona u koloni, tada biste trebali zaključati koordinate reda u vrijednosti pretraživanja (B$1) i koordinate 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 koristiti prilično jednostavnu formulu VLOOKUP s ugniježđenim IF funkcijama da odaberete ispravan list na osnovu 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 pretraživanja (ime stavke), a B$1 je vrijednost ključa (stanje):

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

    Za više formule npr mples, pogledajte Kako VLOOKUP na više listova u Excel-u.

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

    Vježbanje za preuzimanje

    Napredni primjeri VLOOKUP formule (.xlsxfajl)

    pojedinačna vrijednost traženja koju navedete.

    Da biste ovo prevazišli, možete dodati pomoćni stupac i spojiti vrijednosti iz dva stupca pretraživanja ( Kupac i Proizvod ) tamo. Važno je da pomoćni stupac bude krajnji lijevi stupac u nizu tablice jer je to mjesto gdje Excel VLOOKUP uvijek traži traženu vrijednost.

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

    =B2&" "&C2

    A zatim koristite 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 je postavljen na FALSE da bi pregledao točno podudaranje. Snimak ekrana ispod pokazuje rezultat:

    U slučaju da je vaša tabela za traženje u drugom listu , uključite ime lista u formulu VLOOKUP. Na primjer:

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

    Alternativno, kreirajte imenovani raspon za tabelu 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 KakoPotražite s drugog lista u Excelu.

    Napomena. Da bi formula radila ispravno, vrijednosti u pomoćnoj koloni treba da budu spojene na potpuno isti način kao u argumentu lookup_value . Na primjer, koristili smo razmak da odvojimo kriterije u pomoćnoj koloni (B2&" "&C2) i formuli VLOOKUP (G1&" "&G2).

    Formula 2. Excel VLOOKUP sa više uslova

    U teoriji, možete koristiti gornji pristup za Vlookup više od dva kriterija. Međutim, postoji nekoliko upozorenja. Prvo, vrijednost pretraživanja je ograničena na 255 znakova, a drugo, dizajn radnog lista možda ne dozvoljava dodavanje pomoćne kolone.

    Srećom, Microsoft Excel često pruža više od jednog načina da se uradi ista stvar. Za Vlookup više kriterija, možete koristiti ili kombinaciju INDEX MATCH ili funkciju XLOOKUP nedavno uvedenu u Office 365.

    Na primjer, da potražite na osnovu 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 pretraživanja 2 (imena kupaca)
    • C2:C11 je raspon pretraživanja 3 (proizvodi)
    • D2:D11 je povratak raspon (količina)

    Napomena. U svim verzijama osim Excel 365, INDEXMATCH treba uneti kao formulu CSE niza 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 da dobijete 2., 3. ili n-to podudaranje

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

    Formula 1. Vlookup Nth instanca

    Pretpostavimo da imate imena kupaca u jednoj koloni, proizvode koje su kupili u drugoj, a vi tražite da pronađete 2. ili 3. proizvod koji je kupio određeni kupac.

    Najjednostavniji način je dodavanje pomoćne kolone lijevo od tabele kao što smo učinili u prvom primjeru. Ali ovaj put ćemo ga popuniti imenima kupaca i brojevima pojavljivanja poput " John Doe1 ", " John Doe2 ", itd.

    Da dobijete pojavu, koristite funkciju COUNTIF sa mješovitom referencom raspona (prva referenca je apsolutna, a druga relativna kao $B$2:B2). Budući da se relativna referenca mijenja na osnovu pozicije ćelije u koju je formula kopirana, u redu 3 će postati $B$2:B3, u redu 4 -$B$2:B4, i tako dalje.

    Uvezana sa imenom kupca (B2), formula ima ovaj oblik:

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

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

    Nakon toga, unesite naziv cilja i broj pojavljivanja u odvojene ćelije (F1 i F2) i koristite formulu u nastavku da potražite određenu pojavu:

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

    Formula 2. Vlookup 2. pojava

    Ako tražite 2. instancu vrijednosti pretraživanja, onda možete učiniti bez pomoćne kolone. Umjesto toga, kreirajte dinamički niz tablice korištenjem funkcije INDIRECT zajedno sa MATCH:

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

    Gdje:

    • E1 je vrijednost traženja
    • A2:A11 je raspon pretraživanja
    • B11 je posljednja (donja desna) ćelija u tabeli za pretraživanje

    Imajte na umu da gornja formula je napisana za poseban slučaj kada ćelije podataka u tabeli za pretraživanje počinju u redu 2. Ako je vaša tabela negdje u sredini lista, koristite ovu univerzalnu formulu, gdje je A1 gornja lijeva ćelija tabele za pretraživanje koja sadrži zaglavlje stupca:

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

    Kako ova formula funkcionira

    Ovo je ključni dio formule koji kreira dinamički raspon vlookup :

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

    Funkcija MATCH konfigurirana za točno podudaranje (0 u posljednjem argumentu) uspoređuje ime cilja (E1) sa listom imena (A2:A11) i vraća poziciju prvog pronađenog meč, što je 3u našem slučaju. Ovaj broj će se koristiti kao početna koordinata reda za opseg vlookupa, pa mu dodajemo 2 (+1 da isključimo prvu instancu i +1 da isključimo red 1 sa zaglavljima kolona). Alternativno, možete koristiti 1+ROW(A1) da automatski izračunate potrebno podešavanje na osnovu položaja reda zaglavlja (A1 u našem slučaju).

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

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

    Ovaj raspon ide u argument table_array VLOOKUP-a prisiljavajući ga da počne pretraživati ​​u redu 5, izostavljajući prvu instancu vrijednost pretraživanja:

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

    Kako Vlookup i vratiti više vrijednosti u Excelu

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

    Na primjer, u nastavku se mogu pronaći sva pojavljivanja vrijednosti pretraživanja F2 u rasponu pretraživanja B2:B16 i vratiti višestruko podudara se 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 da unesete formulu u radni list:

    1. Upišite formulu u prvu ćeliju, pritisnite Ctrl + Shift + Enter , a zatim ga povucite prema dolje na još nekoliko ćelija.
    2. Odaberite nekoliko susjednih ćelija u jednoj koloni (F1:F11 na slici ispod), upišite formulu i pritisnite Ctrl +Shift + Enter da dovršite.

    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 pregledati u redovima i stupcima (dvosmjerno traženje)

    Dvosmjerno traženje (aka matrično traženje ili 2-dimenzionalno traženje ) je otmjena riječ za traženje vrijednosti na presjeku određeni red i kolonu. Postoji nekoliko različitih načina za obavljanje dvodimenzionalnog pretraživanja u Excelu, ali budući da je fokus ovog vodiča na funkciji VLOOKUP, mi ćemo je prirodno koristiti.

    Za ovaj primjer, uzet ćemo sljedeće tabelu sa mjesečnom prodajom i izradi VLOOKUP formulu za dohvaćanje podataka o prodaji za određeni artikal u datom mjesecu.

    Sa nazivima stavki u A2:A9, nazivima mjeseci u B1:F1, ciljnim artiklom u I1 i ciljni mjesec u I2, formula ide kako slijedi:

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

    Kako ova formula funkcionira

    Jezgro formule je standardna funkcija VLOOKUP koja traži točno podudaranje s vrijednošću pretraživanja u I1. Ali pošto ne znamo u kojoj se tačno koloni nalazi prodaja za određeni mjesec, ne možemo dostaviti broj kolone direktno argumentu col_index_num . Da bismo pronašli tu kolonu, koristimo sljedeće MATCHfunkcija:

    MATCH(I2, A1:F1, 0)

    Prevedena 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 instrukcije MATCH da pronađe vrijednost koja je točno jednaka vrijednosti traženja (to je kao da koristite FALSE za argument range_lookup argumenta VLOOKUP).

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

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

    Molim obratite pažnju da iako nazivi mjeseci počinju u koloni B, mi koristimo A1:I1 za niz pretraživanja. Ovo je učinjeno kako bi broj koji vraća MATCH odgovarao poziciji stupca u table_array VLOOKUP-a.

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

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

    Ponekad se može dogoditi da vaša glavna tablica i tabela pretraživanja nemaju jedan stupac u common, što vas sprečava da izvršite Vlookup između dve tabele. Međutim, postoji još jedna tabela, koja ne sadrži informacije koje tražite, ali ima jednu zajedničku kolonu sa glavnom tabelom i drugu zajedničku kolonu sa tabelom za pretraživanje.

    Na donjoj slici ilustruje situaciju:

    Cilj je kopiranje cijena u glavnu tabelu na osnovu ID-ovi stavki . Problem je u tome što tabela koja sadrži cijene nema ID-ove stavke , što znači da ćemo morati napraviti dva Vlookupa u jednoj formuli.

    Radi praktičnosti, napravimo nekoliko prvo imenovani rasponi:

    • Tabela traženja 1 se zove Proizvodi (D3:E10)
    • Tabela pretraživanja 2 se zove Cijene ( G3:H10 )

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

    A sada ćemo izvršiti tzv. dvostruki Vlookup , aka ugniježđeni Vlookup .

    Prvo, napravite formulu VLOOKUP da biste pronašli naziv proizvoda u tabeli za pretraživanje 1 (nazvan Proizvodi ) na osnovu stavke id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Sljedeće, stavite gornju formulu u argument lookup_value druge funkcije VLOOKUP da biste izvukli cijene iz tabele pretraživanja 2 (nazvane Cijene ) na osnovu naziva proizvoda koji je vratio ugniježđeni VLOOKUP:

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

    Snimak ekrana ispod prikazuje našu ugniježđenu formulu Vlookup u akciji:

    Kako dinamički tražiti više listova

    Ponekad, y možete imati podatke u istom formatu podijeljene na nekoliko radnih listova. Vaš cilj je da izvučete podatke iz određenog lista ovisno o vrijednosti ključa u datoj ćeliji.

    Ovo je možda lakše razumjeti iz primjera. Recimo, imate nekoliko regionalnih izvještaja o prodaji u istom formatu i tražite podatke o prodaji za određeni proizvod u određenim

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.