Uzlabots VLOOKUP programmā Excel: daudzkārtējs, divkāršs, ligzdots

  • Dalīties Ar Šo
Michael Brown

No šiem piemēriem uzzināsiet, kā veikt Vlookup pēc vairākiem kritērijiem, atgriezt konkrētu gadījumu vai visas atbilstības, veikt dinamisku Vlookup vairākās lapās un daudz ko citu.

Šī ir sērijas otrā daļa, kas palīdzēs jums izmantot Excel VLOOKUP iespējas. Piemēri nozīmē, ka jūs zināt, kā šī funkcija darbojas. Ja tas tā nav, ir pamatoti sākt ar VLOOKUP pamatizmantošanu programmā Excel.

Pirms turpinām, ļaujiet man īsi atgādināt sintaksi:

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

Tagad, kad visi ir vienisprātis, aplūkosim padziļinātos VLOOKUP formulas piemērus:

    Kā izmantot Vlookup vairākus kritērijus

    Excel VLOOKUP funkcija ir ļoti noderīga, kad nepieciešams meklēt noteiktu vērtību datu bāzē. Tomēr tai trūkst svarīgas funkcijas - tās sintakse ļauj meklēt tikai vienu meklēšanas vērtību. Bet ko darīt, ja vēlaties meklēt ar vairākiem nosacījumiem? Ir vairāki dažādi risinājumi, no kuriem varat izvēlēties.

    Formula 1. VLOOKUP ar diviem kritērijiem

    Pieņemsim, ka jums ir pasūtījumu saraksts un vēlaties atrast daudzumu, pamatojoties uz 2 kritērijiem, Klienta nosaukums un Produkts Sarežģījumus rada tas, ka katrs klients pasūtīja vairākus produktus, kā parādīts turpmāk tabulā:

    Parastā VLOOKUP formula šajā situācijā nedarbosies, jo tā atgriež pirmo atrasto atbilstību, pamatojoties uz vienu norādīto meklēšanas vērtību.

    Lai to novērstu, varat pievienot palīgkolonnu un savienot divu meklēšanas kolonnu vērtības ( Klients un Produkts ). Ir svarīgi, lai palīgkolonna būtu vistālāk pa kreisi tabulas masīva sleja, jo tajā Excel VLOOKUP vienmēr meklē meklē meklēšanas vērtību.

    Pievienojiet tabulu kreisajā pusē kolonnu un nokopējiet tālāk redzamo formulu. Tādējādi palīgkolonna tiks aizpildīta ar vērtībām no B un C kolonnām (starp tām ir ievietots atstarpes simbols, lai būtu vieglāk lasāms):

    =B2&" "&C2

    Pēc tam izmantojiet standarta VLOOKUP formulu un ievietojiet abus kritērijus lookup_value arguments, atdalīts ar atstarpi:

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

    Vai arī ievadiet kritērijus atsevišķās šūnās (mūsu gadījumā G1 un G2) un apvienojiet šīs šūnas:

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

    Tā kā mēs vēlamies atgriezt vērtību no D slejas, kas ir ceturtā tabulas masīvā, mēs izmantojam 4 kā col_index_num . range_lookup arguments ir iestatīts uz FALSE, lai Vlookup meklētu precīzu atbilstību. Ekrānšā attēlā redzams rezultāts:

    Ja jūsu uzmeklēšanas tabula atrodas vēl viena lapa , iekļaujiet lapas nosaukumu savā VLOOKUP formulā. Piemēram:

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

    Varat arī izveidot nosauktu diapazonu meklēšanas tabulai (piemēram,, Pasūtījumi ), lai formula būtu vieglāk salasāma:

    =VLOOKUP(G1&" "&"&G2, Pasūtījumi, 4, FALSE)

    Lai uzzinātu vairāk, skatiet sadaļu Kā Excel programmā Vlookup no citas lapas.

    Piezīme. Lai formula darbotos pareizi, vērtības palīgkolonnā ir jāsavieno tieši tāpat kā palīgkolonnā. lookup_value Piemēram, mēs izmantojām atstarpes zīmi, lai atdalītu kritērijus gan palīgkolonnā (B2&" "&C2), gan VLOOKUP formulā (G1&" "&G2).

    Formula 2. Excel VLOOKUP ar vairākiem nosacījumiem

    Teorētiski varat izmantot iepriekš aprakstīto pieeju, lai Vlookupētu vairāk nekā divus kritērijus. Tomēr ir pāris iebildumu. Pirmkārt, meklēšanas vērtība ir ierobežota līdz 255 rakstzīmēm, un, otrkārt, darblapas dizains var neļaut pievienot palīgkolonnu.

    Par laimi, Microsoft Excel bieži vien piedāvā vairāk nekā vienu veidu, kā veikt vienu un to pašu darbību. Lai Vlookupētu vairākus kritērijus, varat izmantot INDEX MATCH kombināciju vai funkciju XLOOKUP, kas nesen ieviesta Office 365.

    Piemēram, lai meklētu, pamatojoties uz 3 dažādām vērtībām ( Datums , Klienta nosaukums un Produkts ), izmantojiet vienu no šādām formulām:

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

    Kur:

    • G1 ir 1. kritērijs (datums)
    • G2 ir 2. kritērijs (klienta nosaukums)
    • G3 ir 3. kritērijs (produkts)
    • A2:A11 ir meklēšanas diapazons 1 (datumi).
    • B2:B11 ir meklēšanas diapazons 2 (klientu nosaukumi).
    • C2:C11 ir meklēšanas diapazons 3 (produkti)
    • D2:D11 ir atgriešanas diapazons (daudzums)

    Piezīme. Visās versijās, izņemot Excel 365, INDEX MATCH jāievada kā CSE masīva formula, nospiežot Ctrl + Shift + Enter. Excel 365, kas atbalsta dinamiskos masīvus, tā darbojas arī kā parasta formula.

    Sīkāku formulu skaidrojumu skatīt:

    • XLOOKUP ar vairākiem kritērijiem
    • INDEX MATCH formula ar vairākiem kritērijiem

    Kā izmantot VLOOKUP, lai iegūtu 2., 3. vai n-tās spēles rezultātu

    Kā jau zināt, Excel VLOOKUP var iegūt tikai vienu atbilstošo vērtību, precīzāk, tas atgriež pirmo atrasto atbilstību. Bet ko darīt, ja jūsu meklēšanas masīvā ir vairākas atbilstības un jūs vēlaties iegūt 2. vai 3. gadījumu? Uzdevums izklausās diezgan sarežģīts, bet risinājums pastāv!

    Formula 1. Vlookup N-tais gadījums

    Pieņemsim, ka vienā slejā ir klientu vārdi, citā - viņu iegādātie produkti, un jūs meklējat 2. vai 3. produktu, ko iegādājies attiecīgais klients.

    Visvienkāršākais veids ir pievienot palīgkolonnu tabulas kreisajā pusē, kā mēs to darījām pirmajā piemērā. Taču šoreiz mēs to aizpildīsim ar klientu vārdiem un notikumu numuriem, piemēram, " Zināms1 Džons Doe ", " Nezināms2 " utt.

    Lai iegūtu parādīšanos, izmantojiet funkciju COUNTIF ar jauktu diapazona atsauci (pirmā atsauce ir absolūtā, bet otrā relatīvā, piemēram, $B$2:B2). Tā kā relatīvā atsauce mainās atkarībā no tās šūnas pozīcijas, kurā tiek kopēta formula, 3. rindā tā kļūs par $B$2:B3, 4. rindā - par $B$2:B4 utt...

    Savienota ar klienta nosaukumu (B2), formula iegūst šādu formu:

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

    Iepriekšminētā formula tiek ievietota A2, un pēc tam to kopējiet uz leju uz tik daudzām šūnām, cik nepieciešams.

    Pēc tam atsevišķās šūnās (F1 un F2) ievadiet mērķa nosaukumu un notikuma numuru un izmantojiet tālāk norādīto formulu, lai Vlookupētu konkrētu notikumu:

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

    Formula 2. Vlookup 2. parādīšanās

    Ja meklējat meklēšanas vērtības 2. gadījumu, varat iztikt bez palīgkolonnas. Tā vietā dinamiski izveidojiet tabulas masīvu, izmantojot funkciju INDIRECT kopā ar MATCH:

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

    Kur:

    • E1 ir meklēšanas vērtība
    • A2:A11 ir meklēšanas diapazons
    • B11 ir pēdējā (apakšējā labajā pusē) meklējumu tabulas šūna.

    Lūdzu, ņemiet vērā, ka iepriekš minētā formula ir rakstīta īpašam gadījumam, kad datu šūnas uzmeklēšanas tabulā sākas 2. rindā. Ja jūsu tabula atrodas lapas vidū, izmantojiet šo universālo formulu, kur A1 ir augšējā kreisā uzmeklēšanas tabulas šūna, kas satur kolonnas galveni:

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

    Kā darbojas šī formula

    Šeit ir galvenā formulas daļa, kas veido dinamiskais vlookup diapazons :

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

    MATCH funkcija, kas konfigurēta precīzai sakritībai (0 pēdējā argumentā), salīdzina mērķa nosaukumu (E1) ar nosaukumu sarakstu (A2:A11) un atgriež pirmās atrastās sakritības pozīciju, kas mūsu gadījumā ir 3. Šis skaitlis tiks izmantots kā sākuma rindas koordināta vlookup diapazonam, tāpēc mēs tam pievienojam 2 (+1, lai izslēgtu pirmo gadījumu, un +1, lai izslēgtu 1. rindu ar kolonnu galvenēm).Varat arī izmantot 1+ROW(A1), lai automātiski aprēķinātu nepieciešamo korekciju, pamatojoties uz galvenes rindas (mūsu gadījumā A1) pozīciju.

    Rezultātā iegūstam šādu teksta virkni, ko INDIRECT pārvērš diapazona atsaucē:

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

    Šis diapazons sniedzas līdz table_array VLOOKUP argumentu, kas liek sākt meklēšanu 5. rindā, izlaižot meklēšanas vērtības pirmo gadījumu:

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

    Kā programmā Excel izmantot Vlookup un atgriezt vairākas vērtības

    Excel VLOOKUP funkcija ir izstrādāta, lai atgrieztu tikai vienu atbilstību. Vai ir veids, kā VLOOKUP izmantot vairākos gadījumos? Jā, ir, lai gan tas nav vienkārši. Lai to izdarītu, ir nepieciešams kombinēti izmantot vairākas funkcijas, piemēram, INDEX, SMALL un ROW ir masīva formula.

    Piemēram, tālāk tekstā var atrast visus meklēšanas vērtības F2 gadījumus meklēšanas diapazonā B2:B16 un atgriezt vairākus sakritības variantus no C slejas:

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

    Darba lapā formulu var ievadīt divos veidos:

    1. Ierakstiet formulu pirmajā šūnā, nospiediet Ctrl + Shift + Enter un pēc tam velciet to uz leju uz dažām citām šūnām.
    2. Atlasiet vairākas blakus esošas šūnas vienā slejā (F1:F11 attēlā zemāk), ierakstiet formulu un nospiediet Ctrl + Shift + Enter, lai to pabeigtu.

    Jebkurā gadījumā šūnu skaitam, kurās ievadāt formulu, jābūt vienādam vai lielākam par maksimālo iespējamo atbilstību skaitu.

    Sīkāku formulas loģikas skaidrojumu un vairāk piemēru skatiet sadaļā Kā Excel programmā VLOOKUP iegūt vairākas vērtības.

    Kā izmantot Vlookup rindās un kolonnās (divvirzienu uzmeklēšana)

    Divvirzienu meklēšana (jeb matricas meklēšana vai 2-dimensiju pārlūkošana ) ir izdomāts vārds vērtības meklēšanai konkrētas rindas un kolonnas krustpunktā. Ir vairāki dažādi veidi, kā veikt divdimensiju meklēšanu programmā Excel, bet, tā kā šajā pamācībā galvenā uzmanība ir pievērsta funkcijai VLOOKUP, mēs, protams, izmantosim to.

    Šajā piemērā mēs izmantosim tālāk redzamo tabulu ar mēneša pārdošanas apjomiem un izveidosim VLOOKUP formulu, lai iegūtu pārdošanas apjomu konkrētai precei attiecīgajā mēnesī.

    Ja vienību nosaukumi ir A2:A9, mēnešu nosaukumi ir B1:F1, mērķa vienība ir I1 un mērķa mēnesis ir I2, formula ir šāda:

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

    Kā darbojas šī formula

    Formulas pamatā ir standarta VLOOKUP funkcija, kas meklē precīzu atbilstību meklēšanas vērtībai I1. Bet, tā kā mēs nezinām, kurā tieši slejā ir konkrētā mēneša pārdošanas apjomi, mēs nevaram sniegt slejas numuru tieši funkcijai I1. col_index_num Lai atrastu šo kolonnu, mēs izmantojam šādu MATCH funkciju:

    MATCH(I2, A1:F1, 0)

    Tulkojot angļu valodā, formulā ir teikts: meklējiet I2 vērtību A1:F1 un atdodiet tās relatīvo pozīciju masīvā. 3. argumentā norādot 0, jūs uzdodat MATCH atrast vērtību, kas ir tieši vienāda ar meklējamo vērtību (tas ir tāpat kā izmantot FALSE kā range_lookup VLOOKUP arguments).

    Tā kā Mar ir meklēšanas masīva 4. slejā, MATCH funkcija atgriež 4, kas tieši pāriet uz col_index_num VLOOKUP arguments:

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

    Lūdzu, pievērsiet uzmanību tam, ka, lai gan mēnešu nosaukumi sākas B slejā, mēs izmantojam A1:I1 meklēšanas masīvam. Tas tiek darīts, lai MATCH atdotais numurs atbilstu slejas pozīcijai B slejā. table_array VLOOKUP.

    Lai uzzinātu vairāk veidu, kā Excel programmā veikt matricas meklēšanu, skatiet INDEX MATCH MATCH un citas formulas divdimensiju meklēšanai.

    Kā veikt vairākus Vlookup programmā Excel (ligzdots Vlookup)

    Dažkārt var gadīties, ka galvenajai tabulai un uzmeklēšanas tabulai nav neviena kopīga slejā, kas neļauj veikt Vlookup starp divām tabulām. Tomēr pastāv cita tabula, kurā nav meklējamās informācijas, bet kurai ir viena kopīga sleja ar galveno tabulu un otra kopīga sleja ar uzmeklēšanas tabulu.

    Zemāk redzamajā attēlā ilustrēta situācija:

    Mērķis ir kopēt cenas galvenajā tabulā, pamatojoties uz Vienumu ID . Problēma ir tāda, ka tabulā, kurā ir cenas, nav Vienumu ID , kas nozīmē, ka vienā formulā mums būs jāveic divas Vlookups.

    Ērtības labad vispirms izveidosim pāris nosauktus diapazonus:

    • Meklēšanas tabulas 1 nosaukums ir Produkti (D3:E10)
    • Pārlūkošanas tabula 2 ir nosaukta šādi Cenas ( G3:H10 )

    Tabulas var būt vienā un tajā pašā vai dažādās darblapās.

    Un tagad mēs veiksim tā saukto dubultā Vlookup , jeb ligzdota Vlookup .

    Vispirms izveidojiet VLOOKUP formulu, lai atrastu produkta nosaukumu 1. uzskates tabulā (ar nosaukumu Produkti ), pamatojoties uz preces identifikatoru (A3):

    =VLOOKUP(A3, Produkti, 2, FALSE)

    Pēc tam iepriekš minēto formulu ievietojiet lookup_value argumentu citā VLOOKUP funkcijā, lai izvilktu cenas no Lookup tabulas 2 (ar nosaukumu Cenas ), pamatojoties uz produkta nosaukumu, kas iegūts, izmantojot iegulto VLOOKUP:

    =VLOOKUP(VLOOKUP(A3, Produkti, 2, FALSE), Cenas, 2, FALSE)

    Zemāk redzamajā ekrānšāviņas attēlā ir parādīta mūsu ligzdotā Vlookup formula darbībā:

    Kā dinamiski veikt vairāku lapu Vlookup

    Dažreiz jums var būt dati vienā formātā, kas sadalīti vairākās darblapās. Un jūsu mērķis ir izvilkt datus no konkrētas lapas atkarībā no galvenās vērtības attiecīgajā šūnā.

    To var vieglāk saprast, izmantojot piemēru. Teiksim, jums ir vairāki reģionālie pārdošanas pārskati vienā formātā, un jūs vēlaties iegūt pārdošanas rādītājus par konkrētu produktu konkrētos reģionos:

    Tāpat kā iepriekšējā piemērā, mēs sākam ar dažu nosaukumu definēšanu:

    • Diapazons A2:B5 CA lapā ir nosaukts šādi CA_Sales .
    • Diapazons A2:B5 FL lapā ir nosaukts šādi FL_Sales .
    • Diapazons A2:B5 KS lapā ir nosaukts šādi KS_Sales .

    Kā redzat, visiem nosauktajiem diapazoniem ir kopīga daļa ( Pārdošana ) un unikālas daļas ( CA , FL , KS ). Lūdzu, pārliecinieties, ka jūsu diapazoniem ir līdzīgi nosaukumi, jo tas ir būtiski formulai, ko mēs gatavojamies izveidot.

    Formula 1. INDIRECT VLOOKUP, lai dinamiski iegūtu datus no dažādām lapām

    Ja jūsu uzdevums ir iegūt datus no vairākām lapām, VLOOKUP INDIRECT formula ir labākais risinājums - kompakts un viegli saprotams.

    Šajā piemērā kopsavilkuma tabulu organizējam šādi:

    • Ievadiet interesējošos produktus A2 un A3. Tās ir mūsu meklēšanas vērtības.
    • B1, C1 un D1 ierakstiet nosaukto diapazonu unikālās daļas.

    Tagad mēs apvienojam šūnas, kas satur unikālo daļu (B1), ar kopējo daļu ("_Sales") un iegūto virkni ievadām INDIRECT:

    INDIRECT(B$1&"_Sales")

    Izmantojot funkciju INDIRECT, virkne tiek pārveidota par Excel saprotamu nosaukumu, un jūs to ievietojat sadaļā table_array VLOOKUP arguments:

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

    Iepriekšminētā formula ir B2, un pēc tam kopējiet to uz leju un pa labi.

    Lūdzu, pievērsiet uzmanību tam, ka meklēšanas vērtībā ($A2) mēs esam bloķējuši kolonnas koordinātu ar absolūto šūnas atsauci, lai kolonna paliktu nemainīga, kad formula tiek kopēta pa labi. Atsaucē B$1 mēs bloķējām rindu, jo vēlamies, lai kolonnas koordināta mainītos un nodrošinātu atbilstošu nosaukuma daļu INDIRECT atkarībā no kolonnas, kurā tiek kopēta formula:

    Ja jūsu galvenā tabula ir organizēta atšķirīgi, meklēšanas vērtības rindā un diapazona nosaukumu unikālās daļas kolonnā, tad jums vajadzētu bloķēt rindas koordinātu meklēšanas vērtībā (B$1) un kolonnas koordinātu nosaukuma daļās ($A2):

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

    Formula 2. VLOOKUP un ieliktie IF, lai meklētu vairākas lapas

    Ja jums ir tikai divas vai trīs meklēšanas lapas, varat izmantot diezgan vienkāršu VLOOKUP formulu ar ieliktu IF funkciju, lai izvēlētos pareizo lapu, pamatojoties uz atslēgas vērtību konkrētā šūnā:

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

    kur $A2 ir meklēšanas vērtība (vienuma nosaukums) un B$1 ir atslēgas vērtība (stāvoklis):

    Šajā gadījumā nav obligāti jādefinē nosaukumi un varat izmantot ārējās atsauces, lai atsauktos uz citu lapu vai darbgrāmatu.

    Vairāk formulu piemēru skatiet sadaļā Kā Excel programmā VLOOKUP izmantot vairākās lapās.

    Lūk, kā izmantot VLOOKUP programmā Excel. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ tiksimies mūsu blogā!

    Prakses darba burtnīca lejupielādei

    Paplašinātās VLOOKUP formulas piemēri (.xlsx fails)

    Maikls Brauns ir īpašs tehnoloģiju entuziasts, kura aizraušanās ir sarežģītu procesu vienkāršošana, izmantojot programmatūras rīkus. Ar vairāk nekā desmit gadu pieredzi tehnoloģiju nozarē viņš ir pilnveidojis savas prasmes programmās Microsoft Excel un Outlook, kā arī Google izklājlapās un dokumentos. Maikla emuārs ir veltīts tam, lai dalītos savās zināšanās un pieredzē ar citiem, sniedzot viegli izpildāmus padomus un pamācības produktivitātes un efektivitātes uzlabošanai. Neatkarīgi no tā, vai esat pieredzējis profesionālis vai iesācējs, Maikla emuārs piedāvā vērtīgas atziņas un praktiskus padomus, kā maksimāli izmantot šos būtiskos programmatūras rīkus.