INDEX MATCH MATCH programoje "Excel" dvimatės paieškos tikslais

  • Pasidalinti
Michael Brown

Pamokoje demonstruojamos kelios skirtingos formulės, skirtos dviejų dimensijų paieškai "Excel" programoje atlikti. Tiesiog peržiūrėkite alternatyvas ir pasirinkite mėgstamiausią :)

Ieškodami ko nors "Excel" skaičiuoklėse dažniausiai ieškote vertikaliai stulpeliuose arba horizontaliai eilutėse. Tačiau kartais reikia ieškoti ir eilutėse, ir stulpeliuose. Kitaip tariant, siekiate rasti reikšmę tam tikros eilutės ir stulpelio sankirtoje. Tai vadinama matricos paieška (dar žinomas kaip 2 dimensijų arba 2 krypčių paieška ), o šioje pamokoje parodyta, kaip tai padaryti 4 skirtingais būdais.

    "Excel" INDEX MATCH MATCH formulė

    Populiariausias būdas atlikti dvipusę paiešką "Excel" programoje yra naudojant INDEX MATCH MATCH. Tai yra klasikinės INDEX MATCH formulės atmaina, prie kurios pridedama dar viena MATCH funkcija, kad būtų galima gauti ir eilutės, ir stulpelio numerius:

    INDEKSAS ( data_array , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( "hlookup" vertė , lookup_row_range , 0))

    Kaip pavyzdį sudarykime formulę, kad iš toliau pateiktos lentelės ištrauktume tam tikro gyvūno populiaciją tam tikrais metais. Pradžiai apibrėžiame visus argumentus:

    • Duomenų masyvas - B2:E4 (duomenų ląstelės, neįskaitant eilučių ir stulpelių antraščių)
    • Vlookup_value - H1 (tikslinis gyvūnas)
    • Lookup_column_range - A2:A4 (eilučių antraštės: gyvūnų pavadinimai) - A3:A4
    • Hlookup_value - H2 (tiksliniai metai)
    • Lookup_row_range - B1:E1 (stulpelių antraštės: metai)

    Sudėkite visus argumentus ir gausite šią dvipusės paieškos formulę:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Kaip veikia ši formulė

    Nors iš pirmo žvilgsnio formulė atrodo šiek tiek sudėtinga, jos logika iš tikrųjų yra paprasta ir lengvai suprantama. Funkcija INDEX pagal eilutės ir stulpelio numerius iš duomenų masyvo išgauna vertę, o dvi funkcijos MATCH tuos skaičius pateikia:

    INDEX(B2:E4, eilutės_numeris, stulpelio_numeris)

    Šiuo atveju pasinaudojame MATCH(lookup_value, lookup_array, [match_type]) galimybe grąžinti santykinė padėtis lookup_value svetainėje lookup_array .

    Taigi, norėdami sužinoti eilutės numerį, eilutės antraštėse (A2:A4) ieškome dominančio gyvūno (H1):

    MATCH(H1, A2:A4, 0)

    Norėdami gauti stulpelio numerį, siekiamų metų (H2) ieškome stulpelių antraštėse (B1:E1):

    MATCH(H2, B1:E1, 0)

    Abiem atvejais ieškome tikslaus atitikimo nustatydami 3 argumentą į 0.

    Šiame pavyzdyje pirmoji MATCH grąžina 2, nes mūsų vlookup reikšmė (poliarinis lokys) yra A3, t. y. 2-oje A2:A4 ląstelėje. Antroji MATCH grąžina 3, nes hlookup reikšmė (2000) yra D1, t. y. 3-ioje B1:E1 ląstelėje.

    Atsižvelgiant į tai, kas išdėstyta pirmiau, formulė yra tokia:

    INDEX(B2:E4, 2, 3)

    Ir grąžinkite duomenų masyvo B2:E4 2-osios eilutės ir 3-iojo stulpelio sankirtoje esančią reikšmę, kuri yra ląstelės D3 reikšmė.

    VLOOKUP ir MATCH formulės, skirtos dviejų krypčių peržiūrai

    Kitas būdas atlikti dvimatę paiešką "Excel" programoje - naudoti VLOOKUP ir MATCH funkcijų derinį:

    VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    Mūsų pavyzdinės lentelės formulė yra tokia:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Kur:

    • Table_array - A2:E4 (duomenų ląstelės, įskaitant eilučių antraštes)
    • Vlookup_value - H1 (tikslinis gyvūnas)
    • Hlookup_value - H2 (tiksliniai metai)
    • Lookup_row_range - A1:E1 (stulpelių antraštės: metai)

    Kaip veikia ši formulė

    Formulės pagrindas yra VLOOKUP funkcija, sukonfigūruota tiksliajam atitikimui (paskutinis argumentas lygus FALSE), kuri ieško paieškos vertės (H1) pirmajame lentelės masyvo stulpelyje (A2:E4) ir grąžina vertę iš kito tos pačios eilutės stulpelio. Norėdami nustatyti, iš kurio stulpelio grąžinti vertę, naudojate MATCH funkciją, kuri taip pat sukonfigūruota tiksliajam atitikimui (paskutinis argumentas lygus 0):

    MATCH(H2, A1:E1, 0)

    MATCH ieško H2 esančios reikšmės stulpelių antraštėse (A1:E1) ir grąžina surastos ląstelės santykinę padėtį. Mūsų atveju tiksliniai metai (2010) rasti E1 ląstelėje, kuri yra 5-oji paieškos masyve. Taigi skaičius 5 patenka į col_index_num VLOOKUP argumentas:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    VLOOKUP ją perima, suranda tikslią atitiktį A2 paieškos vertei ir grąžina tos pačios eilutės 5-ojo stulpelio, t. y. E2 langelio, vertę.

    Svarbi pastaba! Kad formulė veiktų teisingai, table_array (A2:E4) VLOOKUP ir lookup_array MATCH (A1:E1) turi turėti tokį patį stulpelių skaičių, kitaip skaičius, perduodamas MATCH į col_index_num bus neteisingas (neatitiks stulpelio pozicijos table_array ).

    XLOOKUP funkcija, skirta ieškoti eilutėse ir stulpeliuose

    Neseniai "Microsoft" į "Excel" įdiegė dar vieną funkciją, kuri turėtų pakeisti visas esamas paieškos funkcijas, pavyzdžiui, VLOOKUP, HLOOKUP ir INDEX MATCH. XLOOKUP, be kita ko, gali ieškoti tam tikros eilutės ir stulpelio sankirtos:

    XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))

    Mūsų pavyzdinio duomenų rinkinio formulė yra tokia:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Pastaba. Šiuo metu XLOOKUP yra beta versija, kuria gali naudotis tik "Office 365" prenumeratoriai, dalyvaujantys programoje "Office Insiders".

    Kaip veikia ši formulė

    Formulėje pasinaudota XLOOKUP galimybe grąžinti visą eilutę arba stulpelį. Vidinė funkcija ieško tikslinių metų antraštės eilutėje ir grąžina visas tų metų (šiame pavyzdyje - 1980 m.) reikšmes. Šios reikšmės patenka į return_array išorinio XLOOKUP argumentas:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    Išorinė XLOOKUP funkcija ieško tikslinio gyvūno stulpelių antraštėse ir grąžina toje pačioje pozicijoje esančią reikšmę iš return_array.

    SUMPRODUCT formulė dvipusei peržiūrai

    Funkcija SUMPRODUCT "Excel" programoje yra tarsi šveicariškas peiliukas - ji gali atlikti daugybę kitų funkcijų, ypač kai reikia įvertinti kelis kriterijus.

    Norėdami ieškoti dviejų kriterijų eilutėse ir stulpeliuose, naudokite šią bendrą formulę:

    SUMPRODUKTAS( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )

    Norint atlikti dviejų krypčių paiešką mūsų duomenų rinkinyje, formulė yra tokia:

    =SUMPRODUKTAS((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Toliau pateikta sintaksė taip pat tinka:

    =SUMPRODUKTAS((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Kaip veikia ši formulė

    Formulės esmė - palyginti dvi paieškos vertes su eilučių ir stulpelių antraštėmis (H1 tikslinį gyvūną su visais gyvūnų pavadinimais, esančiais A2:A4, ir H2 tikslinius metus su visais metais, esančiais B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    Taip gaunami 2 masyvai TRUE ir FALSE reikšmių, kur TRUE reiškia atitikimą:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE,FALSE}

    Daugybos operacija TRUE ir FALSE reikšmes paverčia į 1 ir 0 ir sukuria dvimatį 4 stulpelių ir 3 eilučių masyvą (eilutės atskirtos kabliataškiais, o kiekvienas duomenų stulpelis - kableliu):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    Funkcija SUMPRODUCT padaugina pirmiau pateikto masyvo elementus iš B2:E4 elementų, esančių tose pačiose pozicijose:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    Kadangi padauginus iš nulio gaunamas nulis, pirmojoje aibėje išlieka tik elementas, atitinkantis 1:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Galiausiai SUMPRODUCT sudeda gauto masyvo elementus ir grąžina vertę 2000.

    Pastaba. Jei jūsų lentelėje yra daugiau nei vienos eilutės ar (ir) stulpelio antraštės su tuo pačiu pavadinimu, galutiniame masyve bus daugiau nei vienas skaičius, išskyrus nulį, ir visi šie skaičiai bus sudėti. Kaip rezultatą gausite reikšmių, atitinkančių abu kriterijus, sumą. Būtent tuo SUMPRODUCT formulė skiriasi nuo INDEX MATCH MATCH ir VLOOKUP, kurios grąžina pirmą rastą atitikmenį.

    Matricos paieška su įvardytais intervalais (aiški sankirta)

    Dar vienas nepaprastai paprastas būdas atlikti matricos paiešką "Excel" programoje - naudoti pavadintus intervalus. Štai kaip:

    1 dalis: stulpelių ir eilučių pavadinimai

    Greičiausias būdas pavadinti kiekvieną lentelės eilutę ir stulpelį yra toks:

    1. Pasirinkite visą lentelę (mūsų atveju A1:E4).
    2. Dėl Formulės skirtuke Apibrėžti pavadinimai grupę, spustelėkite Sukurti iš pasirinkimo arba paspauskite sparčiąją klaviatūros kombinaciją Ctrl + Shift + F3.
    3. Į Pavadinimų kūrimas iš pasirinkimo dialogo lange pasirinkite Viršutinė eilutė ir Kairiajame stulpelyje, ir spustelėkite OK.

    Pavadinimai automatiškai sukuriami pagal eilučių ir stulpelių antraštes. Tačiau yra keletas įspėjimų:

    • Jei jūsų stulpelių ir (arba) eilučių antraštės yra skaičiai arba jose yra tam tikrų simbolių, kurie neleidžiami "Excel" pavadinimuose, tokių stulpelių ir eilučių pavadinimai nebus sukurti. Norėdami peržiūrėti sukurtų pavadinimų sąrašą, atidarykite pavadinimų tvarkytuvę ( Ctrl + F3 ). Jei kai kurių pavadinimų nėra, apibrėžkite juos rankiniu būdu, kaip paaiškinta skyrelyje Kaip "Excel" pavadinti intervalą.
    • Jei kai kurių eilučių ar stulpelių antraštėse yra tarpų, jie bus pakeisti, pavyzdžiui, pabraukimais, Polar_bear .

    Mūsų pavyzdinėje lentelėje "Excel" automatiškai sukūrė tik eilučių pavadinimus. Stulpelių pavadinimus reikia sukurti rankiniu būdu, nes stulpelių antraštės yra skaičiai. Norėdami tai išspręsti, galite tiesiog prieš skaičius rašyti pabraukimus, pvz. _1990 .

    Todėl turime šiuos pavadintus intervalus:

    2 dalis: sukurkite matricos paieškos formulę

    Jei norite ištraukti tam tikros eilutės ir stulpelio sankirtoje esančią reikšmę, tiesiog tuščioje ląstelėje įveskite vieną iš šių bendrųjų formulių:

    = eilutės_vardas column_name

    Arba atvirkščiai:

    = column_name eilutės_vardas

    Pavyzdžiui, norint sužinoti mėlynųjų banginių populiaciją 1990 m., formulė yra paprasta:

    =Blue_whale _1990

    Jei kam nors reikia išsamesnių instrukcijų, toliau pateikiami žingsniai padės jums atlikti šį procesą:

    1. Ląstelėje, kurioje norite gauti rezultatą, įveskite lygybės ženklą (=).
    2. Pradėkite rašyti tikslinės eilutės pavadinimą, pvz, Blue_whale . Įvedus porą simbolių, "Excel" parodys visus esamus pavadinimus, atitinkančius jūsų įvestus duomenis. Dukart spustelėkite norimą pavadinimą, kad įvestumėte jį į formulę:
    3. Po eilutės pavadinimo įveskite a erdvė , kuris veikia kaip susikirtimo operatorius šiuo atveju.
    4. Įveskite tikslinio stulpelio pavadinimą ( _1990 mūsų atveju).
    5. Įvedus eilutės ir stulpelio pavadinimus, "Excel" paryškins atitinkamą lentelės eilutę ir stulpelį, o jūs paspausite Enter, kad užbaigtumėte formulę:

    Jūsų matricos paieška atlikta, o toliau pateiktoje ekrano nuotraukoje matomas rezultatas:

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

    Galimi atsisiuntimai

    2 dimensijų paieškos pavyzdžių sąsiuvinis

    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.