Excel INDEX MATCH vs. VLOOKUP - formulas piemēri

  • Dalīties Ar Šo
Michael Brown

Šajā pamācībā ir parādīts, kā lietot INDEX un MATCH programmā Excel un kā tas ir labāk nekā VLOOKUP.

Dažos nesenos rakstos mēs centāmies izskaidrot VLOOKUP funkcijas pamatus iesācējiem un sniegt sarežģītākus VLOOKUP formulas piemērus pieredzējušiem lietotājiem. Un tagad es mēģināšu, ja ne atrunāt jūs no VLOOKUP izmantošanas, tad vismaz parādīt jums alternatīvu veidu, kā veikt vertikālu meklēšanu programmā Excel.

"Kāpēc man tas ir vajadzīgs?", iespējams, brīnāties. Jo VLOOKUP ir daudz ierobežojumu, kas daudzās situācijās var neļaut iegūt vēlamo rezultātu. No otras puses, INDEX MATCH kombinācija ir elastīgāka un tai ir daudz lielisku funkciju, kas to daudzos aspektos padara labāku par VLOOKUP.

    Excel INDEX un MATCH funkcijas - pamati

    Tā kā šīs pamācības mērķis ir parādīt alternatīvu veidu, kā Excel programmā veikt vlookUP, izmantojot INDEX un MATCH funkciju kombināciju, mēs daudz nepievērsīsimies to sintaksei un lietojumam. Mēs aplūkosim tikai minimumu, kas nepieciešams, lai izprastu vispārējo ideju, un pēc tam padziļināti aplūkosim formulas piemērus, kas atklāj visas INDEX MATCH, nevis VLOOKUP izmantošanas priekšrocības.

    INDEX funkcija - sintakse un lietošana

    Excel INDEX funkcija atgriež vērtību masīvā, pamatojoties uz norādīto rindu un kolonnu numuriem. INDEX funkcijas sintakse ir vienkārša:

    INDEX(masīvs, rindas_num, [kolonnas_num])

    Šeit ir sniegts ļoti vienkāršs katra parametra skaidrojums:

    • masīvs - šūnu diapazonu, no kura vēlaties atgriezt vērtību.
    • rindu_num - rindas numurs masīvā, no kura vēlaties atgriezt vērtību. Ja nav norādīts, kolonnas_numurs ir obligāts.
    • column_num - slejas numurs masīvā, no kura vēlaties atgriezt vērtību. Ja netiek norādīts, ir jānorāda rindas_num.

    Lai iegūtu vairāk informācijas, skatiet Excel INDEX funkciju.

    Un šeit ir INDEX formulas piemērs tās vienkāršākajā formā:

    =INDEX(A1:C10,2,3)

    Formula meklē šūnās no A1 līdz C10 un atgriež šūnas vērtību 2. rindā un 3. slejā, t. i., šūnā C2.

    Ļoti vienkārši, vai ne? Tomēr, strādājot ar reāliem datiem, diez vai jūs kādreiz zināsiet, kuru rindu un kolonnu vēlaties, un tieši šajā gadījumā noder funkcija MATCH.

    MATCH funkcija - sintakse un lietošana

    Excel funkcija MATCH meklē meklēšanas vērtību šūnu diapazonā un atgriež šo vērtību. relatīvā pozīcija šīs vērtības diapazonā.

    Funkcijas MATCH sintakse ir šāda:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - meklējamo skaitļa vai teksta vērtību.
    • lookup_array - meklējamo šūnu diapazonu.
    • match_type - norāda, vai jāatgriež precīza atbilstība vai tuvākā atbilstība:
      • 1 vai izlaists - atrod lielāko vērtību, kas ir mazāka vai vienāda ar meklēšanas vērtību. Nepieciešams šķirot meklēšanas masīvu augošā secībā.
      • 0 - atrod pirmo vērtību, kas ir precīzi vienāda ar meklēšanas vērtību. INDEX / MATCH kombinācijā gandrīz vienmēr ir nepieciešama precīza atbilstība, tāpēc MATCH funkcijas trešajam argumentam tiek iestatīts 0.
      • -1 - atrod mazāko vērtību, kas ir lielāka vai vienāda ar lookup_value. Nepieciešams sakārtot lookup masīvu dilstošā secībā.

    Piemēram, ja diapazonā B1:B3 ir vērtības "Ņujorka", "Parīze", "Londona", tālāk sniegtā formula atgriež skaitli 3, jo "Londona" ir trešais ieraksts diapazonā:

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

    Lai uzzinātu vairāk, skatiet Excel funkciju MATCH.

    No pirmā acu uzmetiena MATCH funkcijas lietderība var šķist apšaubāma. Kam ir svarīga vērtības pozīcija diapazonā? Mums ir svarīga pati vērtība.

    Atļaujiet atgādināt, ka tieši meklēšanas vērtības relatīvā pozīcija (t. i., rindas un kolonnas numurs) ir tas, kas jums ir jānorāda vienumam rindu_num un column_num Kā atceraties, Excel INDEX var atrast vērtību konkrētas rindas un kolonnas krustpunktā, bet tas nevar noteikt, kuru tieši rindu un kolonnu vēlaties.

    Kā lietot funkciju INDEX MATCH programmā Excel

    Tagad, kad jūs zināt pamatus, es ticu, ka jau ir sākusi kļūt saprotama MATCH un INDEX sadarbība. Īsumā INDEX atrod meklēšanas vērtību pēc kolonnas un rindas numura, un MATCH nodrošina šos numurus. Tas ir viss!

    Vertikālai meklēšanai izmantojiet funkciju MATCH, lai noteiktu tikai rindas numuru un sniegtu kolonnu diapazonu tieši funkcijai INDEX:

    INDEX ( slejā, lai atgrieztu vērtību no , MATCH ( meklēšanas vērtība , sleja, lai apskatītu pret , 0))

    Joprojām ir grūtības to saprast? To varētu vieglāk saprast, izmantojot piemēru. Pieņemsim, ka jums ir saraksts ar valstu galvaspilsētām un to iedzīvotājiem:

    Lai noskaidrotu iedzīvotāju skaitu noteiktā galvaspilsētā, piemēram, Japānas galvaspilsētā, izmantojiet šādu INDEX MATCH formulu:

    =INDEX(C2:C10, MATCH("Japāna", A2:A10, 0))

    Tagad izanalizēsim, ko patiesībā dara katrs šīs formulas komponents:

    • Funkcija MATCH meklē meklēšanas vērtību "Japan" diapazonā A2:A10 un atgriež skaitli 3, jo "Japan" ir trešā vērtība meklēšanas masīvā.
    • Rindas numurs ir tieši savienots ar rindu_num argumentu INDEX, kas uzdod tam atgriezt vērtību no šīs rindas.

    Tādējādi iepriekš minētā formula kļūst par vienkāršu INDEX(C2:C,3), kas norāda, ka ir jāmeklē šūnās no C2 līdz C10 un jāizvelk vērtība no šīs virknes trešās šūnas, t. i., C4, jo mēs sākam skaitīt no otrās rindas.

    Vai nevēlaties formulā ievadīt pilsētu? Ievadiet to kādā šūnā, piemēram, F1, ievadiet šūnas atsauci uz MATCH, un iegūsiet dinamisku meklēšanas formulu:

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

    Svarīga piezīme! Rindiņu skaits masīvs INDEX argumentam jāsakrīt ar rindu skaitu datubāzē. lookup_array MATCH argumentu, pretējā gadījumā formulas rezultāts būs nepareizs.

    Pagaidiet, pagaidiet... kāpēc mēs vienkārši neizmantojam šādu Vlookup formulu? Kāda jēga tērēt laiku, mēģinot izprast Excel MATCH INDEX noslēpumainos līkločus?

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

    Šajā gadījumā nav nekādas jēgas :) Šis vienkāršais piemērs ir domāts tikai demonstrācijas nolūkos, lai gūtu priekšstatu par INDEX un MATCH funkciju darbību kopā. Turpmākie piemēri parādīs šīs kombinācijas patieso spēku, kas viegli tiek galā ar daudziem sarežģītiem scenārijiem, kad VLOOKUP paklūp.

    Padomi:

    • Programmās Excel 365 un Excel 2021 varat izmantot modernāku formulu INDEX XMATCH.
    • Šajā rakstā skatiet formulas piemērus ar INDEX MATCH, kas attiecas uz Google tabulām.

    INDEX MATCH vs. VLOOKUP

    Lemjot par to, kuru funkciju izmantot vertikālai meklēšanai, lielākā daļa Excel guru piekrīt, ka INDEX MATCH ir daudz labāka nekā VLOOKUP. Tomēr daudzi cilvēki joprojām paliek pie VLOOKUP, pirmkārt, tāpēc, ka tā ir vienkāršāka, un, otrkārt, tāpēc, ka viņi pilnībā neizprot visas INDEX MATCH formulas izmantošanas priekšrocības programmā Excel. Bez šādas izpratnes neviens nav gatavs ieguldīt savu laiku, lai apgūtu sarežģītāku formulu.sintakse.

    Tālāk es norādīšu galvenās MATCH INDEX priekšrocības salīdzinājumā ar VLOOKUP, un jūs izlemiet, vai tas ir vērtīgs papildinājums jūsu Excel arsenālā.

    4 galvenie iemesli, kāpēc VLOOKUP vietā izmantot INDEX MATCH

    1. Pārlūkošana no labās puses uz kreiso. Kā zina jebkurš izglītots lietotājs, VLOOKUP nevar skatīties pa kreisi, kas nozīmē, ka jūsu meklēšanas vērtībai vienmēr jāatrodas tabulas kreisajā slejā. INDEX MATCH var viegli veikt meklēšanu pa kreisi! Turpmākajā piemērā tas parādīts darbībā: Kā Excel programmā VLOOKUP meklēt vērtību pa kreisi.
    2. Droša kolonnu ievietošana vai dzēšana. VLOOKUP formulas tiek izjauktas vai sniedz nepareizus rezultātus, ja no uzmeklēšanas tabulas tiek dzēsta vai pievienota jauna sleja, jo VLOOKUP sintakse prasa norādīt tās slejas indeksa numuru, no kuras vēlaties iegūt datus. Protams, pievienojot vai dzēšot kolonnas, indeksa numurs mainās.

      Izmantojot INDEX MATCH, jūs norādāt atgriežamo kolonnu diapazonu, nevis indeksa numuru. Tādējādi varat brīvi ievietot un noņemt tik kolonnu, cik vēlaties, neuztraucoties par katras saistītās formulas atjaunināšanu.

    3. Pārlūkošanas vērtības lielumam nav ierobežojuma. Izmantojot VLOOKUP funkciju, jūsu meklēšanas kritēriju kopējais garums nedrīkst pārsniegt 255 rakstzīmes, pretējā gadījumā tiks pieļauta kļūda #VALUE!. Tātad, ja jūsu datu kopa satur garas virknes, vienīgais pareizais risinājums ir INDEX MATCH.
    4. Lielāks apstrādes ātrums. Ja jūsu tabulas ir salīdzinoši nelielas, diez vai Excel veiktspēja būtiski atšķirsies. Bet, ja darblapās ir simtiem vai tūkstošiem rindu un līdz ar to simtiem vai tūkstošiem formulu, MATCH INDEX darbosies daudz ātrāk nekā VLOOKUP, jo Excel būs jāapstrādā tikai meklēšanas un atgriešanas kolonnas, nevis viss tabulas masīvs.

      VLOOKUP ietekme uz Excel veiktspēju var būt īpaši jūtama, ja darbgrāmatā ir sarežģītas masīva formulas, piemēram, VLOOKUP un SUM. Runa ir par to, ka, pārbaudot katru vērtību masīvā, nepieciešams atsevišķs VLOOKUP funkcijas izsaukums. Tātad, jo vairāk vērtību satur jūsu masīvs un jo vairāk masīva formulu ir darbgrāmatā, jo lēnāka ir Excel darbība.

    Excel INDEX MATCH - formulas piemēri

    Zinot iemeslus, kādēļ vajadzētu apgūt funkciju MATCH INDEX, ķersimies pie interesantākās daļas un aplūkosim, kā teorētiskās zināšanas var pielietot praksē.

    INDEX MATCH formula, lai skatītos no labās puses uz kreiso.

    Kā jau minēts, VLOOKUP nevar skatīties pa kreisi. Tātad, ja vien jūsu meklēšanas vērtības neatrodas pašā kreisajā slejā, nav izredžu, ka VLOOKUP formula dos vēlamo rezultātu. INDEX MATCH funkcija programmā Excel ir daudzpusīgāka, un tai nav svarīgi, kur atrodas meklēšanas un atgriešanas slejas.

    Šajā piemērā mēs pievienosim mūsu parauga tabulas kreisajā pusē kolonnu Rangs un mēģināsim noskaidrot, kādā vietā pēc iedzīvotāju skaita ir Krievijas galvaspilsēta Maskava.

    Izmantojot meklēšanas vērtību G1, izmantojiet šādu formulu, lai meklētu C2:C10 un atgrieztu atbilstošo vērtību no A2:A10:

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

    Padoms. Ja INDEX MATCH formulu plānojat izmantot vairāk nekā vienā šūnā, pārliecinieties, ka abi diapazoni ir bloķēti ar absolūtām šūnu atsaucēm (piemēram, $A$2:$A$10 un $C$2:4C$10), lai, kopējot formulu, tie netiktu izkropļoti.

    INDEX MATCH MATCH, lai meklētu rindās un kolonnās

    Iepriekš minētajos piemēros mēs izmantojām INDEX MATCH kā klasiskā VLOOKUP aizstājēju, lai atgrieztu vērtību no iepriekš definēta vienas kolonnas diapazona. Bet ko darīt, ja jums ir nepieciešams meklēt vairākās rindās un kolonnās? Citiem vārdiem sakot, ko darīt, ja vēlaties veikt t. s. matrica vai divvirzienu meklēt?

    Tas var šķist sarežģīti, taču formula ir ļoti līdzīga Excel pamatfunkcijai INDEX MATCH, tikai ar vienu atšķirību. Ziniet, kas?

    Vienkārši izmantojiet divas MATCH funkcijas - vienu, lai iegūtu rindas numuru, un otru, lai iegūtu slejas numuru. Un es apsveicu tos, kuri uzminēja pareizi :)

    INDEX (masīvs, MATCH ( vlookup vērtība , sleja, lai apskatītu pret , 0), MATCH ( hlookup vērtība , rinda, pret kuru skatīties , 0))

    Un tagad, lūdzu, apskatiet zemāk redzamo tabulu un izveidosim INDEX MATCH MATCH formulu, lai atrastu iedzīvotāju skaitu (miljonos) attiecīgajā valstī attiecīgajā gadā.

    Izmantojot mērķa valsti G1 (vlookup vērtība) un mērķa gadu G2 (hlookup vērtība), formula ir šāda:

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

    Kā darbojas šī formula

    Ja nepieciešams izprast sarežģītu Excel formulu, sadaliet to sīkākās daļās un aplūkojiet, ko veic katra atsevišķā funkcija:

    MATCH(G1,A2:A11,0) - meklē vērtību šūnā G1 ("Ķīna"), izmantojot A2:A11, un atgriež tās pozīciju, kas ir 2.

    MATCH(G2,B1:D1,0)) - meklē B1:D1, lai iegūtu vērtības pozīciju šūnā G2 ("2015"), kas ir 3.

    Iepriekš minētie rindu un kolonnu numuri atbilst attiecīgajiem INDEX funkcijas argumentiem:

    INDEKSS(B2:D11, 2, 3)

    Rezultātā diapazona B2:D11 2. rindas un 3. slejas krustpunktā tiek iegūta vērtība, kas ir vērtība šūnā D3. Viegli? Jā!

    Excel INDEX MATCH, lai meklētu vairākus kritērijus

    Ja jums ir bijusi iespēja izlasīt mūsu Excel VLOOKUP pamācību, jūs, iespējams, jau esat izmēģinājis Vlookup formulu ar vairākiem kritērijiem. Tomēr šīs pieejas būtisks ierobežojums ir nepieciešamība pievienot palīgkolonnu. Labā ziņa ir tā, ka Excel INDEX MATCH funkcija var meklēt arī ar diviem vai vairākiem kritērijiem, nemainot vai nepārstrukturējot avota datus!

    Šeit ir vispārējā INDEX MATCH formula ar vairākiem kritērijiem:

    {=INDEX( return_range , MATCH(1, ( kritēriji1 = diapazons1 ) * ( kritēriji2 = diapazons2 ), 0))}

    Piezīme. Šī ir masīva formula, kas jāaizpilda, izmantojot īsceļu kombināciju Ctrl + Shift + Enter.

    Pieņemsim, ka turpmāk dotajā tabulas paraugā vēlaties atrast summu, pamatojoties uz 2 kritērijiem, Klients un Produkts .

    Šāda INDEX MATCH formula darbojas lieliski:

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

    Kur C2:C10 ir diapazons, no kura jāatgriež vērtība, F1 ir kritērijs1, A2:A10 ir diapazons, kas jāsalīdzina ar kritēriju1, F2 ir kritērijs 2, un B2:B10 ir diapazons, kas jāsalīdzina ar kritēriju2.

    Neaizmirstiet pareizi ievadīt formulu, nospiežot Ctrl + Shift + Enter, un Excel automātiski ietvers to loka iekavās, kā parādīts ekrānšāviņā:

    Ja darblapās nevēlaties izmantot masīva formulas, pievienojiet formulai vēl vienu INDEX funkciju un pabeidziet to ar parasto Enter:

    Kā šīs formulas darbojas

    Formulās tiek izmantota tāda pati pieeja kā pamatfunkcijā INDEX MATCH, kas pārbauda vienu kolonnu. Lai novērtētu vairākus kritērijus, tiek izveidoti divi vai vairāki TRUE un FALSE vērtību masīvi, kas apzīmē atbilstību un neatbilstību katram atsevišķam kritērijam, un pēc tam tiek reizināti šo masīvu attiecīgie elementi. Daudzināšanas operācija pārvērš TRUE un FALSE par 1 un 0,MATCH funkcija ar meklēšanas vērtību 1 atrod pirmo "1" masīvā un nodod tā pozīciju INDEX, kas atgriež vērtību šajā rindā no norādītās kolonnas.

    Formula, kas nav masīvs, paļaujas uz INDEX funkcijas spēju dabiski apstrādāt masīvus. Otrais INDEX ir konfigurēts ar 0 rindu_num tā, lai MATCH tiktu nodots viss kolonnu masīvs.

    Tas ir formulas loģikas augsta līmeņa skaidrojums. Lai iegūtu sīkāku informāciju, skatiet Excel INDEX MATCH ar vairākiem kritērijiem.

    Excel INDEX MATCH ar AVERAGE, MAX, MIN

    Microsoft Excel ir īpašas funkcijas, lai atrastu minimālo, maksimālo un vidējo vērtību diapazonā. Bet ko darīt, ja nepieciešams iegūt vērtību no citas šūnas, kas ir saistīta ar šīm vērtībām? Šādā gadījumā izmantojiet MAX, MIN vai AVERAGE funkciju kopā ar INDEX MATCH.

    INDEX MATCH ar MAX

    Lai atrastu lielāko vērtību D slejā un atgrieztu vērtību no C slejas tajā pašā rindā, izmantojiet šo formulu:

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

    INDEX MATCH ar MIN

    Lai atrastu mazāko vērtību D slejā un izvilktu saistīto vērtību no C slejas, izmantojiet šo:

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

    INDEX MATCH ar AVERAGE

    Lai noteiktu vērtību, kas ir vistuvāk D2:D10 vidējai vērtībai, un iegūtu atbilstošo vērtību no C slejas, jāizmanto šī formula:

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

    Atkarībā no tā, kā ir organizēti dati, MATCH funkcijas trešajam argumentam (match_type) norādiet 1 vai -1:

    • Ja jūsu meklēšanas aile (mūsu gadījumā - aile D) ir sakārtota. augšupejošais , ielieciet 1. Formula aprēķinās lielāko vērtību, kas ir mazāk nekā vai vienāds ar vidējo vērtību.
    • Ja jūsu meklēšanas sleja ir sakārtota lejupejošais , ievadiet -1. Formula aprēķinās mazāko vērtību, kas ir lielāks par vai vienāds ar vidējo vērtību.
    • Ja jūsu meklēšanas masīvā ir vērtība precīzi vienāds līdz vidējam rādītājam, varat ievadīt 0, lai iegūtu precīzu atbilstību. Šķirošana nav nepieciešama.

    Mūsu piemērā iedzīvotāju skaits D slejā ir sakārtots dilstošā secībā, tāpēc atbilstības tipam izmantojam -1. Rezultātā iegūstam "Tokija", jo tās iedzīvotāju skaits (13 189 000) ir tuvākā atbilstība, kas ir lielāka par vidējo (12 269 006).

    Jums varētu būt interesanti uzzināt, ka arī VLOOKUP var veikt šādus aprēķinus, bet kā masīva formulu: VLOOKUP ar AVERAGE, MAX, MIN.

    INDEX MATCH izmantošana ar IFNA / IFERROR

    Kā jau droši vien esat pamanījuši, ja INDEX MATCH formula programmā Excel nevar atrast meklēšanas vērtību, tā rada kļūdu #N/A. Ja vēlaties aizstāt standarta kļūdas pierakstu ar kaut ko jēgpilnāku, ietiniet INDEX MATCH formulu ar funkciju IFNA. Piemēram:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Nav atrasta atbilstība")

    Tagad, ja kāds ievadīs meklēšanas tabulu, kas nepastāv meklēšanas diapazonā, formula nepārprotami informēs lietotāju, ka nav atrasta atbilstība:

    Ja vēlaties, lai tiktu pārtvertas visas kļūdas, ne tikai #N/A, IFNA vietā izmantojiet funkciju IFERROR:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Ak, kaut kas nepareizi!")

    Lūdzu, paturiet prātā, ka daudzās situācijās var būt nepamatoti slēpt visas kļūdas, jo tās brīdina par iespējamiem trūkumiem jūsu formulā.

    Lūk, kā lietot INDEX un MATCH programmā Excel. Es ceru, ka mūsu formulu piemēri jums būs noderīgi, un ar nepacietību gaidīsim jūs mūsu blogā nākamnedēļ!

    Prakses darba burtnīca lejupielādei

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