Išplėstinė VLOOKUP programa "Excel": daugkartinis, dvigubas, įterptas

  • Pasidalinti
Michael Brown

Šiuose pavyzdžiuose sužinosite, kaip atlikti "Vlookup" su keliais kriterijais, grąžinti konkretų atvejį arba visus atitikmenis, atlikti dinaminį "Vlookup" keliuose lapuose ir dar daugiau.

Tai antroji serijos dalis, kuri padės jums išnaudoti "Excel" VLOOKUP galią. Pavyzdžiai reiškia, kad žinote, kaip ši funkcija veikia. Jei ne, logiška pradėti nuo pagrindinių VLOOKUP naudojimo būdų "Excel" programoje.

Prieš pradėdamas toliau, trumpai priminsiu sintaksę:

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

Dabar, kai jau visi supranta tą patį, atidžiau panagrinėkime išplėstinės VLOOKUP formulės pavyzdžius:

    Kaip atlikti "Vlookup" su keliais kriterijais

    "Excel" VLOOKUP funkcija tikrai naudinga, kai reikia ieškoti tam tikros reikšmės duomenų bazėje. Tačiau jai trūksta svarbios savybės - jos sintaksė leidžia nustatyti tik vieną paieškos reikšmę. Tačiau ką daryti, jei norite ieškoti su keliomis sąlygomis? Galite rinktis iš kelių skirtingų sprendimų.

    1 formulė. VLOOKUP su dviem kriterijais

    Tarkime, kad turite užsakymų sąrašą ir norite rasti kiekį pagal 2 kriterijus, Kliento pavadinimas ir Produktas . Sudėtinga tai, kad kiekvienas klientas užsisakė kelis produktus, kaip parodyta toliau pateiktoje lentelėje:

    Įprastinė VLOOKUP formulė šiuo atveju neveiks, nes ji grąžina pirmą rastą atitikmenį pagal vieną nurodytą paieškos reikšmę.

    Norėdami tai išspręsti, galite pridėti pagalbinį stulpelį ir sujungti dviejų paieškos stulpelių reikšmes ( Klientas ir Produktas ). Svarbu, kad pagalbinis stulpelis būtų labiausiai į kairę lentelės masyvo stulpelį, nes būtent jame "Excel" VLOOKUP visada ieško paieškos reikšmės.

    Taigi pridėkite stulpelį kairėje lentelės pusėje ir nukopijuokite toliau pateiktą formulę per tą stulpelį. Taip pagalbinis stulpelis bus užpildytas B ir C stulpelių reikšmėmis (tarp jų įterptas tarpo simbolis, kad būtų aiškiau skaityti):

    =B2&" "&C2

    Tada naudokite standartinę VLOOKUP formulę ir abu kriterijus įrašykite į lookup_value argumentas, atskirti tarpu:

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

    Arba įveskite kriterijus į atskirus langelius (mūsų atveju - G1 ir G2) ir tuos langelius sujunkite:

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

    Kadangi norime grąžinti reikšmę iš D stulpelio, kuris yra ketvirtas lentelės masyve, naudojame 4 kaip col_index_num . range_lookup argumentas nustatomas į FALSE, kad Vlookup būtų tiksli atitiktis. Toliau pateiktoje ekrano nuotraukoje parodytas rezultatas:

    Jei jūsų paieškos lentelė yra kitas lapas , į VLOOKUP formulę įtraukite lapo pavadinimą, pvz:

    =VLOOKUP(G1&" "&"& G2, Užsakymai!A2:D11, 4, FALSE)

    Arba sukurkite pavadintą paieškos lentelės intervalą (pvz, Užsakymai ), kad formulę būtų lengviau perskaityti:

    =VLOOKUP(G1&" "&"& G2, Užsakymai, 4, FALSE)

    Daugiau informacijos rasite skyriuje Kaip atlikti "Vlookup" iš kito "Excel" lapo.

    Pastaba. Kad formulė veiktų teisingai, pagalbinio stulpelio reikšmės turi būti sujungtos lygiai taip pat, kaip ir lookup_value Pavyzdžiui, naudodami tarpo ženklą atskyrėme kriterijus ir pagalbiniame stulpelyje (B2&" "&C2), ir VLOOKUP formulėje (G1&" "&G2).

    2 formulė. "Excel" VLOOKUP su keliomis sąlygomis

    Teoriškai galite naudoti pirmiau aprašytą metodą, norėdami naudoti daugiau nei du kriterijus. Tačiau yra keletas įspėjimų. Pirma, paieškos reikšmė gali būti ne didesnė kaip 255 simboliai, antra, darbalapio dizainas gali neleisti pridėti pagalbinio stulpelio.

    Laimei, "Microsoft Excel" dažnai siūlo daugiau nei vieną būdą tam pačiam dalykui atlikti. Norėdami atlikti kelių kriterijų paiešką, galite naudoti INDEX MATCH derinį arba neseniai "Office 365" įdiegtą funkciją XLOOKUP.

    Pavyzdžiui, norėdami ieškoti pagal 3 skirtingas reikšmes ( Data , Kliento pavadinimas ir Produktas ), naudokite vieną iš šių formulių:

    =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 - 1 kriterijus (data)
    • G2 - 2 kriterijus (kliento pavadinimas)
    • G3 - 3 kriterijus (produktas)
    • A2:A11 yra 1 paieškos diapazonas (datos)
    • B2:B11 yra 2 paieškos diapazonas (klientų pavadinimai)
    • C2:C11 yra 3 paieškos sritis (produktai)
    • D2:D11 - grąžinimo diapazonas (kiekis)

    Pastaba. Visose versijose, išskyrus "Excel 365", INDEX MATCH reikia įvesti kaip CSE masyvo formulę, paspaudus Ctrl + Shift + Enter. Dinaminius masyvus palaikančiose "Excel 365" versijose ji taip pat veikia kaip įprasta formulė.

    Išsamų formulių paaiškinimą žr:

    • XLOOKUP su keliais kriterijais
    • INDEX MATCH formulė su keliais kriterijais

    Kaip naudoti VLOOKUP, kad gautumėte antrąjį, trečiąjį arba n-ąjį atitikmenį

    Kaip jau žinote, "Excel" VLOOKUP gali gauti tik vieną sutampančią reikšmę, tiksliau, ji grąžina pirmą rastą sutapimą. Bet ką daryti, jei jūsų paieškos masyve yra keli sutapimai ir norite gauti antrą ar trečią atvejį? Užduotis skamba gana sudėtingai, bet sprendimas egzistuoja!

    Formulė 1. Vlookup N-asis atvejis

    Tarkime, viename stulpelyje yra klientų vardai, kitame - jų įsigyti produktai, o jūs norite rasti antrąjį arba trečiąjį produktą, kurį pirko tam tikras klientas.

    Paprasčiausias būdas - pridėti pagalbinį stulpelį kairėje lentelės pusėje, kaip tai padarėme pirmajame pavyzdyje. Tačiau šį kartą jį užpildysime klientų vardais ir įvykių numeriais, pavyzdžiui, " John Doe1 ", " John Doe2 " ir t. t.

    Kad gautumėte įvykį, naudokite COUNTIF funkciją su mišria diapazono nuoroda (pirmoji nuoroda yra absoliuti, o antroji - santykinė, pvz., $B$2:B2). Kadangi santykinė nuoroda keičiasi priklausomai nuo ląstelės, į kurią kopijuojama formulė, padėties, 3 eilutėje ji taps $B$2:B3, 4 eilutėje - $B$2:B4 ir t. t.

    Sudėjus su kliento pavadinimu (B2), formulė įgauna tokią formą:

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

    Pirmiau pateikta formulė perkeliama į A2, tada ją nukopijuokite į tiek ląstelių, kiek reikia.

    Po to atskirose ląstelėse (F1 ir F2) įveskite tikslo pavadinimą ir įvykio numerį ir naudokite toliau pateiktą formulę, kad Vlookup ieškotumėte konkretaus įvykio:

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

    2 formulė. 2. "Vlookup" 2-asis atvejis

    Jei ieškote 2-ojo paieškos reikšmės atvejo, galite apsieiti be pagalbinio stulpelio. Vietoj to dinamiškai sukurkite lentelės masyvą naudodami funkciją INDIRECT kartu su MATCH:

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

    Kur:

    • E1 yra paieškos vertė
    • A2:A11 yra paieškos diapazonas
    • B11 yra paskutinis (apatinis dešinysis) paieškos lentelės langelis

    Atkreipkite dėmesį, kad pirmiau pateikta formulė skirta konkrečiam atvejui, kai paieškos lentelės duomenų ląstelės prasideda 2 eilutėje. Jei jūsų lentelė yra kur nors lapo viduryje, naudokite šią universalią formulę, kurioje A1 yra paieškos lentelės, kurioje yra stulpelio antraštė, viršutinė kairioji ląstelė:

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

    Kaip veikia ši formulė

    Čia pateikiama pagrindinė formulės dalis, kuria sukuriama dinaminis "vlookup" diapazonas :

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

    Funkcija MATCH, sukonfigūruota tiksliam atitikimui (0 paskutiniame argumente), lygina tikslinį pavadinimą (E1) su pavadinimų sąrašu (A2:A11) ir grąžina pirmojo rasto atitikimo poziciją, kuri mūsų atveju yra 3. Šis skaičius bus naudojamas kaip pradinė eilutės koordinatė vlookup diapazonui, todėl prie jo pridedame 2 (+1, kad neįtrauktume pirmojo atvejo, ir +1, kad neįtrauktume 1 eilutės su stulpelių antraštėmis).Arba galite naudoti 1+ROW(A1), kad automatiškai apskaičiuotumėte reikiamą koregavimą pagal antraštinės eilutės (mūsų atveju - A1) padėtį.

    Kaip rezultatą gauname tokią teksto eilutę, kurią INDIRECT konvertuoja į diapazono nuorodą:

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

    Šis diapazonas apima table_array argumentas VLOOKUP priverčia jį pradėti paiešką 5 eilutėje, neįtraukiant pirmojo paieškos vertės atvejo:

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

    Kaip "Excel" programoje "Vlookup" ir grąžinti kelias reikšmes

    "Excel" funkcija VLOOKUP skirta grąžinti tik vieną atitikmenį. Ar yra būdas VLOOKUP atlikti keliais atvejais? Taip, yra, nors ir nelengvas. Tam reikia kartu naudoti kelias funkcijas, pavyzdžiui, INDEX, SMALL ir ROW yra masyvo formulė.

    Pavyzdžiui, toliau pateiktame paveiksle galima rasti visus paieškos vertės F2 atvejus paieškos intervale B2:B16 ir grąžinti kelis atitikmenis iš C stulpelio:

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

    Yra 2 būdai, kaip įvesti formulę į darbalapį:

    1. Įveskite formulę į pirmąją ląstelę, paspauskite Ctrl + Shift + Enter , tada vilkite ją žemyn į kelias kitas ląsteles.
    2. Pasirinkite kelis gretimus vieno stulpelio langelius (toliau pateiktame paveikslėlyje F1:F11), įveskite formulę ir paspauskite Ctrl + Shift + Enter, kad ją užbaigtumėte.

    Bet kuriuo atveju ląstelių, į kurias įrašote formulę, skaičius turėtų būti lygus didžiausiam galimų atitikmenų skaičiui arba už jį didesnis.

    Išsamų formulės logikos paaiškinimą ir daugiau pavyzdžių rasite straipsnyje Kaip "Excel" programoje VLOOKUP nustatyti kelias reikšmes.

    Kaip atlikti Vlookup eilutėse ir stulpeliuose (dvipusė paieška)

    Dvipusė paieška (dar žinomas kaip matricos paieška arba 2 dimensijų paieška ) - tai išgalvotas žodis, skirtas ieškoti vertės tam tikros eilutės ir stulpelio sankirtoje. Yra keletas skirtingų būdų, kaip "Excel" programoje atlikti dvimatę paiešką, bet kadangi šioje pamokoje daugiausia dėmesio skiriama VLOOKUP funkcijai, natūralu, kad naudosime būtent ją.

    Šiame pavyzdyje paimsime toliau pateiktą mėnesio pardavimų lentelę ir sukursime VLOOKUP formulę, kad gautume konkretaus elemento pardavimų skaičių tam tikrą mėnesį.

    Kai elementų pavadinimai yra A2:A9, mėnesių pavadinimai - B1:F1, tikslinis elementas - I1, o tikslinis mėnuo - I2, formulė yra tokia:

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

    Kaip veikia ši formulė

    Formulės esmė - standartinė VLOOKUP funkcija, kuri ieško tikslaus atitikimo I1 paieškos vertei. Tačiau kadangi nežinome, kuriame tiksliai stulpelyje yra konkretaus mėnesio pardavimai, negalime tiesiogiai pateikti stulpelio numerio funkcijai col_index_num argumentas. Norėdami rasti šį stulpelį, naudojame šią MATCH funkciją:

    MATCH(I2, A1:F1, 0)

    Išvertus į lietuvių kalbą, formulė sako: suraskite I2 reikšmę A1:F1 ir grąžinkite jos santykinę padėtį masyve. 3 argumentą nurodydami 0, nurodote MATCH rasti reikšmę, lygiai lygią paieškos reikšmei (tai tas pats, kaip naudoti FALSE už range_lookup VLOOKUP argumentas).

    Kadangi Mar yra 4-ajame paieškos masyvo stulpelyje, funkcija MATCH grąžina 4, o tai reiškia, kad ji patenka tiesiai į col_index_num VLOOKUP argumentas:

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

    Atkreipkite dėmesį, kad nors mėnesių pavadinimai prasideda B stulpelyje, paieškos masyvui naudojame A1:I1. Tai daroma tam, kad MATCH grąžinamas skaičius atitiktų stulpelio poziciją table_array VLOOKUP.

    Jei norite sužinoti daugiau būdų, kaip atlikti matricos paiešką "Excel" programoje, žr. skyrių INDEX MATCH MATCH ir kitas dvimatės paieškos formules.

    Kaip "Excel" programoje atlikti kelis "Vlookup" (įterptas "Vlookup")

    Kartais gali atsitikti taip, kad pagrindinė lentelė ir paieškos lentelė neturi nė vieno bendro stulpelio, todėl negalite atlikti dviejų lentelių "Vlookup". Tačiau yra kita lentelė, kurioje nėra ieškomos informacijos, bet kuri turi vieną bendrą stulpelį su pagrindine lentele ir kitą bendrą stulpelį su paieškos lentele.

    Toliau pateiktame paveikslėlyje pavaizduota situacija:

    Tikslas - nukopijuoti kainas į pagrindinę lentelę pagal Elemento ID . Problema ta, kad lentelėje, kurioje yra kainos, nėra Elemento ID , t. y. vienoje formulėje turėsime atlikti du Vlookup.

    Patogumo dėlei pirmiausia sukurkime porą pavadintų intervalų:

    • 1 paieškos lentelė pavadinta Produktai (D3:E10)
    • 2 paieškos lentelė pavadinta Kainos ( G3:H10 )

    Lentelės gali būti tame pačiame arba skirtinguose darbalapiuose.

    O dabar atliksime vadinamąjį dvigubas Vlookup , dar žinomas kaip įterptas Vlookup .

    Pirmiausia sukurkite VLOOKUP formulę, kad surastumėte produkto pavadinimą 1 paieškos lentelėje (pavadintoje Produktai ) pagal elemento ID (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    Tada pirmiau pateiktą formulę įrašykite į lookup_value kitos VLOOKUP funkcijos argumentas, kad ištrauktumėte kainas iš 2 paieškos lentelės (pavadintos Kainos ) pagal produkto pavadinimą, gautą iš įterpto VLOOKUP:

    =VLOOKUP(VLOOKUP(A3, Produktai, 2, FALSE), Kainos, 2, FALSE)

    Toliau pateiktoje ekrano nuotraukoje parodyta veikianti mūsų įterpta "Vlookup" formulė:

    Kaip dinamiškai peržiūrėti kelis lapus

    Kartais galite turėti to paties formato duomenų, suskirstytų į kelis darbalapius. Ir jūsų tikslas yra ištraukti duomenis iš konkretaus lapo priklausomai nuo tam tikroje ląstelėje esančios raktinės reikšmės.

    Tarkime, turite kelias to paties formato regionines pardavimų ataskaitas ir norite gauti tam tikro produkto pardavimų tam tikruose regionuose duomenis:

    Kaip ir ankstesniame pavyzdyje, pradedame nuo kelių pavadinimų apibrėžimo:

    • CA lapo A2:B5 diapazonas pavadintas CA_Sales .
    • FL lapo A2:B5 diapazonas pavadintas FL_Sales .
    • KS lapo A2:B5 diapazonas pavadintas KS_Sales .

    Kaip matote, visi įvardyti intervalai turi bendrą dalį ( Pardavimai ) ir unikalios dalys ( CA , FL , KS ). Būtinai panašiai pavadinkite savo intervalus, nes tai labai svarbu formulei, kurią ketiname sukurti.

    1 formulė. INDIRECT VLOOKUP - dinamiškai traukti duomenis iš skirtingų lapų

    Jei norite gauti duomenis iš kelių lapų, VLOOKUP INDIRECT formulė yra geriausias sprendimas - kompaktiška ir lengvai suprantama.

    Šiame pavyzdyje suvestinę lentelę sudarome taip:

    • Įveskite dominančius produktus į A2 ir A3. Tai yra mūsų paieškos vertės.
    • Į B1, C1 ir D1 įrašykite unikalias pavadintų intervalų dalis.

    Dabar ląstelę, kurioje yra unikalioji dalis (B1), sujungiame su bendrąja dalimi ("_Sales") ir gautą eilutę perduodame INDIRECT:

    INDIRECT(B$1&"_Sales")

    Funkcija INDIRECT paverčia eilutę į "Excel" suprantamą pavadinimą, o jūs jį įrašote į table_array VLOOKUP argumentas:

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

    Pirmiau pateikta formulė perkeliama į B2, tada ją nukopijuokite žemyn ir į dešinę.

    Atkreipkite dėmesį, kad paieškos reikšmėje ($A2) stulpelio koordinatę užrakinome absoliučia ląstelės nuoroda, kad stulpelis išliktų fiksuotas, kai formulė kopijuojama į dešinę. B$1 nuorodoje eilutę užrakinome, nes norime, kad stulpelio koordinatė keistųsi ir būtų pateikta atitinkama vardo dalis INDIRECT, priklausomai nuo stulpelio, į kurį kopijuojama formulė:

    Jei jūsų pagrindinė lentelė yra organizuota kitaip - paieškos vertės eilutėje, o unikalios intervalų pavadinimų dalys stulpelyje, tuomet turėtumėte užrakinti eilutės koordinatę paieškos vertėje (B$1), o stulpelio koordinatę - pavadinimų dalyse ($A2):

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

    2 formulė. VLOOKUP ir įterptiniai IF, skirti keliems lapams peržiūrėti

    Jei turite tik du ar tris paieškos lapus, galite naudoti gana paprastą VLOOKUP formulę su įterptomis IF funkcijomis, kad pasirinktumėte tinkamą lapą pagal tam tikroje ląstelėje esančią raktinę reikšmę:

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

    Kai $A2 yra paieškos reikšmė (elemento pavadinimas), o B$1 yra rakto reikšmė (būsena):

    Šiuo atveju nebūtinai reikia apibrėžti pavadinimus ir galite naudoti išorines nuorodas, kad patektumėte nuorodą į kitą lapą ar sąsiuvinį.

    Daugiau formulių pavyzdžių rasite straipsnyje Kaip atlikti VLOOKUP keliuose "Excel" lapuose.

    Štai kaip naudoti VLOOKUP "Excel" programoje. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    Išplėstinės VLOOKUP formulės pavyzdžiai (.xlsx failas)

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.