"Excel" INDEX MATCH vs. VLOOKUP - formulės pavyzdžiai

  • Pasidalinti
Michael Brown

Šioje pamokoje parodoma, kaip "Excel" programoje naudoti INDEX ir MATCH ir kuo tai geriau nei VLOOKUP.

Keliuose paskutiniuose straipsniuose stengėmės pradedantiems vartotojams paaiškinti VLOOKUP funkcijos pagrindus, o patyrusiems naudotojams pateikti sudėtingesnių VLOOKUP formulės pavyzdžių. O dabar pabandysiu jei ne atkalbėti jus nuo VLOOKUP funkcijos naudojimo, tai bent parodyti alternatyvų būdą, kaip atlikti vertikalią paiešką "Excel" programoje.

"Kam man to reikia?" - galite pagalvoti. Nes VLOOKUP turi daugybę apribojimų, dėl kurių daugeliu atvejų galite negauti norimo rezultato. Kita vertus, INDEX MATCH derinys yra lankstesnis ir turi daug puikių funkcijų, dėl kurių daugeliu atžvilgių yra pranašesnis už VLOOKUP.

    "Excel" INDEX ir MATCH funkcijos - pagrindai

    Kadangi šios pamokos tikslas - parodyti alternatyvų "Excel" vlookup atlikimo būdą naudojant INDEX ir MATCH funkcijų derinį, daug nesigilinsime į jų sintaksę ir naudojimą. Apžvelgsime tik tai, kas būtina norint suprasti bendrą idėją, o tada išsamiai apžvelgsime formulių pavyzdžius, kurie atskleidžia visus INDEX MATCH, o ne VLOOKUP naudojimo privalumus.

    INDEX funkcija - sintaksė ir naudojimas

    Excel INDEX funkcija grąžina reikšmę masyve pagal nurodytus eilučių ir stulpelių numerius. INDEX funkcijos sintaksė paprasta:

    INDEX(masyvas, eilutės_numeris, [stulpelio_numeris])

    Čia pateikiamas labai paprastas kiekvieno parametro paaiškinimas:

    • masyvas - langelių, iš kurių norite grąžinti vertę, intervalą.
    • eilutės_num - eilutės numeris masyve, iš kurio norite grąžinti reikšmę. Jei praleistas, būtina nurodyti stulpelio_numerį.
    • column_num - stulpelio numeris masyve, iš kurio norite grąžinti reikšmę. Jei praleista, būtina nurodyti eilutės_numerį.

    Daugiau informacijos žr. "Excel" funkciją INDEX.

    Štai paprasčiausias INDEX formulės pavyzdys:

    =INDEX(A1:C10,2,3)

    Formulė ieško ląstelėse nuo A1 iki C10 ir grąžina 2 eilutės ir 3 stulpelio ląstelės, t. y. ląstelės C2, reikšmę.

    Labai paprasta, tiesa? Tačiau dirbant su realiais duomenimis vargu ar kada nors žinosite, kurios eilutės ir stulpelio norite, todėl čia praverčia funkcija MATCH.

    Funkcijos MATCH sintaksė ir naudojimas

    "Excel" funkcija MATCH ieško paieškos vertės ląstelių intervale ir grąžina santykinė padėtis tos vertės intervalą.

    Funkcijos MATCH sintaksė yra tokia:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - ieškomą skaičių arba teksto reikšmę.
    • lookup_array - ieškomų langelių intervalas.
    • match_type - nurodo, ar grąžinti tikslų atitikmenį, ar artimiausią atitikmenį:
      • 1 arba praleista - surandama didžiausia reikšmė, kuri yra mažesnė arba lygi paieškos reikšmei. Reikia surūšiuoti paieškos masyvą didėjančia tvarka.
      • 0 - surandama pirmoji reikšmė, kuri tiksliai atitinka paieškos reikšmę. INDEX / MATCH kombinacijoje beveik visada reikia tikslaus atitikimo, todėl nustatomas trečiasis funkcijos MATCH argumentas - 0.
      • -1 - suranda mažiausią reikšmę, kuri yra didesnė arba lygi lookup_value. Reikia surūšiuoti lookup masyvą mažėjančia tvarka.

    Pavyzdžiui, jei intervale B1:B3 yra reikšmės "Niujorkas", "Paryžius", "Londonas", toliau pateikta formulė grąžina skaičių 3, nes "Londonas" yra trečias įrašas intervale:

    =MATCH("Londonas",B1:B3,0)

    Daugiau informacijos žr. "Excel" funkciją MATCH.

    Iš pirmo žvilgsnio funkcijos MATCH naudingumas gali atrodyti abejotinas. Kam rūpi reikšmės padėtis intervale? Mums svarbu žinoti pačią reikšmę.

    Norėčiau priminti, kad paieškos vertės santykinė padėtis (t. y. eilutės ir stulpelio numeriai) yra būtent tai, ką reikia pateikti į eilutės_num ir column_num funkcijos INDEX argumentai. Kaip prisimenate, Excel INDEX gali surasti reikšmę tam tikros eilutės ir stulpelio sandūroje, tačiau negali nustatyti, kurios tiksliai eilutės ir stulpelio norite.

    Kaip naudoti funkciją INDEX MATCH programoje "Excel

    Dabar, kai jau žinote pagrindinius dalykus, manau, jau tapo aišku, kaip MATCH ir INDEX veikia kartu. Trumpai tariant, INDEX randa paieškos vertę pagal stulpelio ir eilutės numerius, o MATCH pateikia tuos numerius. Štai ir viskas!

    Vertikaliai paieškai funkcija MATCH naudojama tik eilutės numeriui nustatyti, o stulpelių intervalas pateikiamas tiesiogiai į INDEX:

    INDEKSAS ( stulpeliui grąžinti reikšmę iš , MATCH ( paieškos vertė , stulpelis, į kurį galima pažvelgti , 0))

    Vis dar sunkiai sekasi tai suprasti? Galbūt bus lengviau suprasti iš pavyzdžio. Tarkime, kad turite valstybių sostinių ir jų gyventojų sąrašą:

    Norėdami sužinoti tam tikros sostinės, pavyzdžiui, Japonijos sostinės, gyventojų skaičių, naudokite šią INDEX MATCH formulę:

    =INDEX(C2:C10, MATCH("Japonija", A2:A10, 0))

    Dabar paanalizuokime, ką iš tikrųjų daro kiekviena šios formulės sudedamoji dalis:

    • Funkcija MATCH ieško paieškos reikšmės "Japan" intervale A2:A10 ir grąžina skaičių 3, nes "Japan" yra trečias paieškos masyve.
    • Eilutės numeris tiesiogiai nukreipiamas į eilutės_num argumentas INDEX, nurodantis grąžinti tos eilutės reikšmę.

    Taigi pirmiau pateikta formulė virsta paprasta INDEX(C2:C,3), kurioje sakoma, kad reikia ieškoti ląstelėse nuo C2 iki C10 ir ištraukti vertę iš trečiosios ląstelės tame intervale, t. y. C4, nes pradedame skaičiuoti nuo antrosios eilutės.

    Nenorite į formulę įrašyti miesto? Įveskite jį į kurią nors ląstelę, tarkime, F1, pateikite ląstelės nuorodą MATCH ir gausite dinaminę paieškos formulę:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Svarbi pastaba! Eilučių skaičius masyvas argumentas INDEX turėtų atitikti eilučių skaičių lookup_array MATCH argumentas, kitaip formulė duos neteisingą rezultatą.

    Palaukite, palaukite... kodėl tiesiog nenaudojame šios Vlookup formulės? Kokia prasmė gaišti laiką bandant išsiaiškinti sudėtingus "Excel" MATCH INDEX vingius?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    Šiuo atveju nėra jokios prasmės :) Šis paprastas pavyzdys skirtas tik demonstracijos tikslais, kad pajustumėte, kaip INDEX ir MATCH funkcijos veikia kartu. Kiti toliau pateikti pavyzdžiai parodys tikrąją šio derinio galią, nes jis lengvai susidoroja su daugeliu sudėtingų scenarijų, kai VLOOKUP suklumpa.

    Patarimai:

    • Programose "Excel 365" ir "Excel 2021" galite naudoti modernesnę formulę INDEX XMATCH.
    • Šiame straipsnyje rasite "Google Sheets" formulės su INDEX MATCH pavyzdžių.

    INDEX MATCH vs. VLOOKUP

    Dauguma "Excel" guru sutinka, kad INDEX MATCH yra kur kas geresnė už VLOOKUP. Tačiau daugelis žmonių vis dar naudojasi VLOOKUP, nes, pirma, ji paprastesnė ir, antra, jie iki galo nesupranta visų INDEX MATCH formulės naudojimo "Excel" privalumų. Be tokio supratimo niekas nenori investuoti savo laiko, kad išmoktų sudėtingesnę INDEX MATCH formulę.sintaksė.

    Toliau nurodysiu pagrindinius MATCH INDEX privalumus, palyginti su VLOOKUP, o jūs nuspręsite, ar verta papildyti savo "Excel" arsenalą.

    4 pagrindinės priežastys, kodėl verta naudoti INDEX MATCH, o ne VLOOKUP

    1. Paieška iš dešinės į kairę. Kaip žino bet kuris išsilavinęs naudotojas, VLOOKUP negali žiūrėti į kairę, o tai reiškia, kad jūsų ieškomoji reikšmė visada turi būti kairiausiame lentelės stulpelyje. INDEX MATCH gali lengvai atlikti ieškojimą į kairę! Toliau pateiktame pavyzdyje parodyta, kaip tai veikia: Kaip "Excel" programoje "VLOOKUP" ieškoti reikšmės į kairę.
    2. Saugiai įterpkite arba ištrinkite stulpelius. VLOOKUP formulės sutrinka arba pateikia neteisingus rezultatus, kai iš paieškos lentelės pašalinamas arba į ją įtraukiamas naujas stulpelis, nes pagal VLOOKUP sintaksę reikia nurodyti stulpelio, iš kurio norima gauti duomenis, indekso numerį. Natūralu, kad įtraukus arba pašalinus stulpelius indekso numeris pasikeičia.

      Naudodami INDEX MATCH nurodote grąžinamų stulpelių intervalą, o ne indekso numerį. Todėl galite įterpti ir pašalinti tiek stulpelių, kiek norite, nesirūpindami kiekvienos susijusios formulės atnaujinimu.

    3. Ieškojimo reikšmės dydis neribojamas. Naudojant VLOOKUP funkciją, bendras paieškos kriterijų ilgis negali viršyti 255 simbolių, nes priešingu atveju gausite #VALUE! klaidą. Taigi, jei jūsų duomenų rinkinyje yra ilgų eilučių, vienintelis tinkamas sprendimas yra INDEX MATCH.
    4. Didesnis apdorojimo greitis. Jei jūsų lentelės palyginti nedidelės, vargu ar bus koks nors reikšmingas "Excel" našumo skirtumas. Tačiau jei darbalapiuose yra šimtai ar tūkstančiai eilučių ir atitinkamai šimtai ar tūkstančiai formulių, MATCH INDEX veiks daug greičiau nei VLOOKUP, nes "Excel" turės apdoroti tik paieškos ir grąžinimo stulpelius, o ne visą lentelės masyvą.

      VLOOKUP poveikis "Excel" našumui gali būti ypač pastebimas, jei darbaknygėje yra sudėtingų masyvų formulių, tokių kaip VLOOKUP ir SUM. Esmė ta, kad kiekvienai masyvo vertei patikrinti reikia atskirai iškviesti VLOOKUP funkciją. Taigi, kuo daugiau verčių yra jūsų masyve ir kuo daugiau masyvų formulių yra darbaknygėje, tuo lėčiau veikia "Excel".

    "Excel" INDEX MATCH - formulės pavyzdžiai

    Žinodami, kodėl verta išmokti MATCH INDEX funkciją, pereikime prie įdomiausios dalies ir pažiūrėkime, kaip teorines žinias galima pritaikyti praktiškai.

    INDEX MATCH formulė, skirta ieškoti iš dešinės į kairę

    Kaip jau minėta, VLOOKUP negali žiūrėti į kairę. Taigi, jei jūsų ieškomos reikšmės nėra pačiame kairiausiame stulpelyje, nėra jokios tikimybės, kad VLOOKUP formulė duos norimą rezultatą. "Excel" funkcija INDEX MATCH yra universalesnė ir jai tikrai nerūpi, kur yra ieškomi ir grąžinami stulpeliai.

    Šiame pavyzdyje į pavyzdinės lentelės kairę pusę įrašysime stulpelį "Rangas" ir pabandysime išsiaiškinti, kokią vietą pagal gyventojų skaičių užima Rusijos sostinė Maskva.

    Naudodami G1 paieškos vertę, pagal šią formulę ieškokite C2:C10 ir grąžinkite atitinkamą vertę iš A2:A10:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    Patarimas. Jei INDEX MATCH formulę planuojate naudoti daugiau nei viename lange, būtinai užblokuokite abu diapazonus absoliučiomis langelių nuorodomis (pavyzdžiui, $A$2:$A$10 ir $C$2:4C$10), kad kopijuojant formulę jie nebūtų iškraipyti.

    INDEX MATCH MATCH paieška eilutėse ir stulpeliuose

    Pateiktuose pavyzdžiuose INDEX MATCH naudojome kaip klasikinio VLOOKUP pakaitalą, kad grąžintume reikšmę iš iš anksto nustatyto vieno stulpelio intervalo. Tačiau ką daryti, jei reikia ieškoti keliose eilutėse ir stulpeliuose? Kitaip tariant, ką daryti, jei norite atlikti vadinamąjį matrica arba dvipusis ieškoti?

    Tai gali skambėti sudėtingai, tačiau formulė labai panaši į pagrindinę "Excel" funkciją INDEX MATCH, tik su vienu skirtumu. Atspėkite ką?

    Paprasčiausiai naudokite dvi MATCH funkcijas - viena jų skirta eilutės numeriui gauti, o kita - stulpelio numeriui gauti. Sveikinu tuos, kurie atspėjo teisingai :)

    INDEX (masyvas, MATCH ( vlookup vertė , stulpelis, į kurį galima pažvelgti , 0), MATCH ( "hlookup" vertė , eilutė, į kurią galima pažvelgti iš viršaus , 0))

    O dabar pažvelkite į toliau pateiktą lentelę ir sudarykime INDEKSO RODYKLĖS RODYKLĖS formulę, kad rastume tam tikros šalies gyventojų skaičių (milijonais) tam tikrais metais.

    Kai tikslinė šalis yra G1 (vlookup reikšmė), o tiksliniai metai - G2 (hlookup reikšmė), formulė atrodo taip:

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    Kaip veikia ši formulė

    Kai reikia suprasti sudėtingą "Excel" formulę, išskaidykite ją į mažesnes dalis ir pažiūrėkite, ką daro kiekviena atskira funkcija:

    MATCH(G1,A2:A11,0) - ieškoma reikšmės ląstelėje G1 ("Kinija") A2:A11 ir grąžinama jos pozicija, kuri yra 2.

    MATCH(G2,B1:D1,0)) - ieškoma B1:D1 ląstelėje G2 ("2015") esančios reikšmės, kuri yra 3, pozicijos.

    Pirmiau nurodyti eilučių ir stulpelių numeriai atitinka atitinkamus funkcijos INDEX argumentus:

    INDEX(B2:D11, 2, 3)

    Kaip rezultatą gausite reikšmę, esančią 2-osios eilutės ir 3-iojo stulpelio susikirtimo intervale B2:D11, t. y. reikšmę ląstelėje D3. Lengva? Taip!

    "Excel" INDEX MATCH, kad galėtumėte ieškoti kelių kriterijų

    Jei teko skaityti mūsų "Excel" VLOOKUP pamoką, tikriausiai jau išbandėte VLOOKUP formulę su keliais kriterijais. Tačiau esminis šio metodo apribojimas - būtinybė pridėti pagalbinį stulpelį. Gera žinia ta, kad "Excel" funkcija INDEX MATCH taip pat gali atlikti paiešką pagal du ar daugiau kriterijų, nekeičiant ir nepertvarkant pradinių duomenų!

    Čia pateikiama bendra INDEX MATCH formulė su keliais kriterijais:

    {=INDEX( return_range , MATCH(1, ( kriterijai1 = diapazonas1 ) * ( kriterijai2 = diapazonas2 ), 0))}

    Pastaba. Tai yra masyvo formulė, kurią reikia užbaigti naudojant spartųjį klavišą Ctrl + Shift + Enter.

    Toliau pateiktoje pavyzdinėje lentelėje, tarkime, norite rasti sumą pagal 2 kriterijus, Klientas ir Produktas .

    Toliau pateikta INDEX MATCH formulė veikia puikiai:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Kai C2:C10 yra diapazonas, iš kurio reikia grąžinti reikšmę, F1 yra kriterijus1, A2:A10 yra diapazonas, kurį reikia palyginti su kriterijumi1, F2 yra kriterijus2, o B2:B10 yra diapazonas, kurį reikia palyginti su kriterijumi2.

    Nepamirškite teisingai įvesti formulę paspausdami Ctrl + Shift + Enter, ir "Excel" automatiškai ją uždarys lenktiniais skliaustais, kaip parodyta paveikslėlyje:

    Jei nenorėtumėte naudoti masyvų formulių darbalapiuose, pridėkite prie formulės dar vieną INDEX funkciją ir užbaigkite ją įprastu Enter paspaudimu:

    Kaip veikia šios formulės

    Formulėse naudojamas tas pats metodas kaip ir pagrindinėje INDEX MATCH funkcijoje, kuri tikrina vieną stulpelį. Norėdami įvertinti kelis kriterijus, sukurkite du ar daugiau TRUE ir FALSE reikšmių masyvų, kurie reiškia atitikimus ir neatitikimus kiekvienam atskiram kriterijui, ir padauginkite atitinkamus šių masyvų elementus. Daugybos operacija TRUE ir FALSE paverčia 1 ir 0,Atitinkamai sukuriamas masyvas, kuriame 1 atitinka eilutes, atitinkančias visus kriterijus. Funkcija MATCH, kurios paieškos reikšmė yra 1, suranda pirmąją "1" masyve ir perduoda jos poziciją funkcijai INDEX, kuri grąžina šios eilutės reikšmę iš nurodyto stulpelio.

    Formulėje, kurioje nėra masyvo, remiamasi funkcijos INDEX gebėjimu natūraliai apdoroti masyvus. Antrajame INDEX konfigūruojama 0 eilutės_num kad MATCH būtų perduotas visas stulpelių masyvas.

    Tai yra aukšto lygio formulės logikos paaiškinimas. Išsamios informacijos rasite skyriuje "Excel" INDEX MATCH su keliais kriterijais.

    "Excel" INDEX MATCH su AVERAGE, MAX, MIN

    "Microsoft Excel" turi specialias funkcijas, skirtas mažiausiai, didžiausiai ir vidutinei vertei diapazone rasti. Tačiau ką daryti, jei reikia gauti vertę iš kito langelio, susijusią su šiomis vertėmis? Tokiu atveju naudokite MAX, MIN arba AVERAGE funkciją kartu su INDEX MATCH.

    INDEX MATCH su MAX

    Norėdami rasti didžiausią D stulpelio reikšmę ir grąžinti tos pačios eilutės C stulpelio reikšmę, naudokite šią formulę:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH su MIN

    Norėdami rasti mažiausią D stulpelio reikšmę ir iš C stulpelio ištraukti susijusią reikšmę, naudokite šią reikšmę:

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    INDEX MATCH su AVERAGE

    Norint nustatyti reikšmę, artimiausią D2:D10 vidurkiui, ir gauti atitinkamą reikšmę iš C stulpelio, reikia naudoti šią formulę:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    Priklausomai nuo to, kaip organizuojami jūsų duomenys, į funkcijos MATCH trečiąjį argumentą (match_type) įrašykite 1 arba -1:

    • Jei jūsų paieškos stulpelis (mūsų atveju - D stulpelis) yra surūšiuotas didėjančia tvarka , įrašykite 1. Formulė apskaičiuos didžiausią reikšmę, kuri yra mažiau nei arba lygi vidutinei vertei.
    • Jei paieškos stulpelis yra surūšiuotas mažėjantis , įveskite -1. Formulė apskaičiuos mažiausią reikšmę, kuri yra didesnis nei arba lygi vidutinei vertei.
    • Jei jūsų paieškos masyve yra reikšmė lygiai vienodi į vidurkį, galite įvesti 0, jei norite gauti tikslią atitiktį. Rūšiuoti nereikia.

    Mūsų pavyzdyje D stulpelyje gyventojų skaičius surūšiuotas mažėjimo tvarka, todėl atitikimo tipui naudojame -1. Kaip rezultatą gauname "Tokijas", nes jo gyventojų skaičius (13 189 000) yra artimiausias atitikimas, kuris yra didesnis už vidurkį (12 269 006).

    Jums gali būti įdomu sužinoti, kad VLOOKUP taip pat gali atlikti tokius skaičiavimus, tačiau kaip masyvo formulė: VLOOKUP su AVERAGE, MAX, MIN.

    INDEX MATCH naudojimas su IFNA / IFERROR

    Kaip tikriausiai pastebėjote, jei "Excel" INDEX MATCH formulė neranda paieškos reikšmės, ji pateikia klaidą #N/A. Jei norite standartinį klaidos užrašą pakeisti kažkuo prasmingesniu, INDEX MATCH formulę apvyniokite funkcija IFNA. Pavyzdžiui:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Nėra atitikmenų")

    Dabar, jei kas nors įves paieškos lentelę, kurios nėra paieškos diapazone, formulė aiškiai informuos naudotoją, kad nerastas atitikmuo:

    Jei norite fiksuoti visas klaidas, ne tik #N/A, vietoj funkcijos IFNA naudokite funkciją IFERROR:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, kažkas nepavyko!")

    Atminkite, kad daugeliu atvejų gali būti neprotinga paslėpti visas klaidas, nes jos įspėja apie galimus jūsų formulės trūkumus.

    Štai kaip "Excel" programoje naudoti INDEX ir MATCH. Tikiuosi, kad mūsų formulių pavyzdžiai jums bus naudingi, ir lauksime jūsų mūsų tinklaraštyje kitą savaitę!

    Atsisiųsti praktikos sąsiuvinį

    "Excel" INDEX MATCH 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.