Ynhâldsopjefte
Dit tutorial lit sjen hoe't jo INDEX en MATCH brûke yn Excel en hoe't it better is dan VLOOKUP.
Yn in pear resinte artikels hawwe wy in goede poging dien om de basis fan VLOOKUP-funksje út te lizzen oan begjinners en mear komplekse foarbylden fan VLOOKUP-formules te leverjen oan machtige brûkers. En no sil ik besykje om jo net te praten fan it brûken fan VLOOKUP, dan lit jo op syn minst in alternative manier sjen om in fertikale opsykjen yn Excel te dwaan.
"Wêr haw ik dat foar nedich?" jo kinne jo ôffreegje. Om't VLOOKUP in protte beheiningen hat dy't jo kinne foarkomme dat jo yn in protte situaasjes it winske resultaat krije. Oan 'e oare kant is de INDEX MATCH-kombinaasje fleksibeler en hat in protte geweldige funksjes dy't it yn in protte opsichten superieur meitsje oan VLOOKUP.
Excel INDEX en MATCH-funksjes - de basis
Sûnt it doel fan dizze tutorial is om in alternative manier te demonstrearjen om in vlookup yn Excel te dwaan troch in kombinaasje fan INDEX- en MATCH-funksjes te brûken, sille wy net folle stilstean op har syntaksis en brûkt. Wy sille allinich it minimum dekke dat nedich is foar it begripen fan it algemiene idee en nim dan in yngeande blik op formulefoarbylden dy't alle foardielen sjen litte fan it brûken fan INDEX MATCH ynstee fan VLOOKUP.
INDEX-funksje - syntaksis en gebrûk
De Excel INDEX-funksje jout in wearde werom yn in array basearre op de rige- en kolomnûmers dy't jo oantsjutte. De syntaksis fan 'e INDEX-funksje is ienfâldich:
( kritearia1= berik1) * ( kritearia2= berik2), 0))}Opmerking. Dit is in array-formule dy't foltôge wurde moat mei de fluchtoets Ctrl + Shift + Enter.
Yn de foarbyldtabel hjirûnder, oannommen dat jo it bedrach fine wolle op basis fan 2 kritearia, Klant en Produkt .
De folgjende INDEX MATCH-formule wurket in traktaasje:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Wêr't C2:C10 it berik is om in wearde werom te jaan, F1 is kritearia1, A2:A10 is it berik om te fergelykjen mei kritearia1, F2 is kritearia 2, en B2:B10 is it berik om te fergelykjen mei kritearia2.
Onthâld om de formule goed yn te fieren troch op Ctrl + Shift + Enter te drukken , en Excel sil it automatysk krullende heakjes omfetsje lykas werjûn yn 'e skermôfbylding:
As jo leaver gjin arrayformules yn jo wurkblêden brûke, foegje dan noch ien INDEX-funksje ta oan de formule en foltôgje it mei in gewoane Enter-hit:
Hoe't dizze formules wurkje
De formules brûke deselde oanpak as de basisfunksje INDEX MATCH dy't troch sjocht ien kolom. Foar in evaluearje meardere kritearia, jo meitsje twa of mear arrays fan TRUE en FALSE wearden dy't fertsjintwurdigje wedstriden en net-oerienkomsten foar elk yndividu kritearium, en dan fermannichfâldigje de oerienkommende eleminten fan dizze arrays. De fermannichfâldigje operaasje konvertearret TRUE en FALSE yn respektivelik 1 en 0, en produsearret in array dêr't 1's oerienkomme mei rigen dy't oerienkomme mei alle kritearia.De MATCH-funksje mei in opsykwearde fan 1 fynt de earste "1" yn 'e array en jout syn posysje troch oan INDEX, dy't in wearde werombringt yn dizze rige út 'e oantsjutte kolom.
De non-array-formule is basearre op it fermogen fan 'e INDEX-funksje om arrays native te behanneljen. De twadde INDEX is konfigurearre mei 0 row_num sadat it de hiele kolomarray nei MATCH trochjaan sil.
Dat is in útlis op heech nivo fan de logika fan de formule. Foar folsleine details sjoch Excel INDEX MATCH mei meardere kritearia.
Excel INDEX MATCH mei AVERAGE, MAX, MIN
Microsoft Excel hat spesjale funksjes om in minimum, maksimum en gemiddelde wearde te finen yn in berik. Mar wat as jo in wearde moatte krije fan in oare sel dy't ferbûn is mei dy wearden? Brûk yn dit gefal de funksje MAX, MIN of AVERAGE tegearre mei INDEX MATCH.
INDEX MATCH mei MAX
Om de grutste wearde yn kolom D te finen en in wearde werom te jaan út kolom C yn de deselde rige, brûk dizze formule:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH mei MIN
Om de lytste wearde yn kolom D te finen en in assosjearre wearde út kolom C te lûken, brûk dizze ien :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEX MATCH with AVERAGE
Om de wearde út te wurkjen dy't it tichtst by it gemiddelde yn D2:D10 stiet en in oerienkommende wearde út kolom C krije, is dit de formule te brûken:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
Ofhinklik fan hoe't jo gegevens binne organisearre, leverje of 1 of -1 oan it tredde argumint (match_type) fande MATCH-funksje:
- As jo opsykkolom (kolom D yn ús gefal) oprinnend sortearre is, set dan 1. De formule sil de grutste wearde berekkenje dy't minder is as of gelyk oan de gemiddelde wearde.
- As jo opsykkolom ôfnimmend sortearre is, fier dan -1 yn. De formule sil de lytste wearde berekkenje dy't grutter is as of lyk oan de gemiddelde wearde.
- As jo opsykarray in wearde befettet krekt gelyk oan it gemiddelde, dan kin ynfiere 0 foar eksakte wedstriid. Gjin sortearring is nedich.
Yn ús foarbyld binne de populaasjes yn kolom D yn ôfnimmende folchoarder sortearre, dus brûke wy -1 foar matchtype. As resultaat krije wy "Tokio" om't syn befolking (13.189.000) de tichtste wedstriid is dy't grutter is dan gemiddeld (12.269.006).
Jo kinne nijsgjirrich wêze om te witten dat VLOOKUP kin sokke berekkeningen ek útfiere, mar as arrayformule: VLOOKUP mei AVERAGE, MAX, MIN.
Yndeks MATCH brûke mei IFNA / IFERROR
Lykas jo wierskynlik opfallen hawwe, as in INDEX MATCH formule yn Excel kin gjin opsykwearde fine, it produsearret in #N/A flater. As jo de standert flaternotaasje ferfange wolle troch wat mear betsjuttings, ferpak dan jo INDEX MATCH-formule yn 'e IFNA-funksje. Bygelyks:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
En no, as immen in opsyktabel ynfiert dy't net bestiet yn it opsykberik, sil de formule de brûker eksplisyt ynformearje dat gjin oerienkomst isfûn:
As jo alle flaters wolle fange, net allinich #N/A, brûk dan de IFERROR-funksje ynstee fan IFNA:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
Hâld asjebleaft yn gedachten dat it yn in protte situaasjes ûnferstannich wêze kin om alle flaters te ferbergjen, om't se jo warskôgje oer mooglike flaters yn jo formule.
Dat is hoe't jo INDEX en MATCH brûke yn Excel. Ik hoopje dat ús formulefoarbylden nuttich foar jo sille wêze en sjoch út nei jo te sjen op ús blog nije wike!
Oefeningswurkboek foar download
Excel INDEX MATCH foarbylden (.xlsx-bestân)
INDEX(array, row_num, [column_num])Hjir is in heul ienfâldige útlis fan elke parameter:
- array - in berik fan sellen dy't jo wolle weromjaan in wearde fan.
- rige_num - it rigenûmer yn array wêrfan jo in wearde weromjaan wolle. As it weilitten is, is it column_num fereaske.
- column_num - it kolomnûmer yn array wêrfan jo in wearde weromjaan wolle. As it weilitten is, is row_num ferplicht.
Sjoch foar mear ynformaasje Excel INDEX-funksje.
En hjir is in foarbyld fan de INDEX-formule yn syn ienfâldichste foarm:
=INDEX(A1:C10,2,3)
De formule siket yn sellen A1 oant en mei C10 en jout in wearde fan 'e sel yn 'e 2e rige en de 3e kolom werom, dus sel C2.
Hiel maklik, krekt? As jo wurkje mei echte gegevens soene jo lykwols amper witte hokker rige en kolom jo wolle, dêr komt de MATCH-funksje goed fan pas.
MATCH-funksje - syntaksis en gebrûk
De Excel MATCH-funksje siket nei in opsykwearde yn in berik fan sellen en jout de relative posysje fan dy wearde yn it berik werom.
De syntaksis fan de MATCH-funksje is as folget:
MATCH(lookup_value , lookup_array, [match_type])- lookup_value - it nûmer of tekstwearde wêr't jo nei sykje.
- lookup_array - in berik fan sellen dy't socht.
- match_type - spesifisearret of in krekte oerienkomst of de tichtstbyste oerienkomst weromjûn wurdt:
- 1 of weilitten - fynt de grutste wearde dy't minder as of gelyk is oan de opsykwearde. Fereasket it sortearjen fan de opsykarray yn oprinnende folchoarder.
- 0 - fynt de earste wearde dy't krekt gelyk is oan de opsykwearde. Yn 'e INDEX / MATCH kombinaasje hawwe jo hast altyd in krekte oerienkomst nedich, dus jo sette it tredde argumint fan jo MATCH-funksje op 0.
- -1 - fynt de lytste wearde dy't grutter is as of gelyk oan lookup_value. Fereasket it sortearjen fan de opsykarray yn ôfnimmende folchoarder.
As bygelyks it berik B1:B3 de wearden "New-York", "Parys", "Londen", befettet, de ûndersteande formule jout it nûmer 3 werom, om't "Londen" de tredde yngong yn it berik is:
=MATCH("London",B1:B3,0)
Sjoch foar mear ynformaasje Excel MATCH-funksje.
By earste gesicht, it nut fan de MATCH funksje kin lykje twifelich. Wa jout oer de posysje fan in wearde yn in berik? Wat wy wol witte is de wearde sels.
Lit my jo herinnerje dat de relative posysje fan de opsykwearde (d.w.s. rige- en kolomnûmers) krekt is wat jo moatte leverje oan de rige_num en column_num arguminten fan de INDEX-funksje. Sa't jo ûnthâlde, kin Excel INDEX de wearde fine op it knooppunt fan in opjûne rige en kolom, mar it kin net bepale hokker krekte rige en kolom jo wolle.
Hoe brûke jo INDEX MATCH-funksje yn Excel
No't jo de basis kenne, leau ik dat it hatbegûn al sin te meitsjen hoe't MATCH en INDEX gearwurkje. Yn in notedop fynt INDEX de opsykwearde troch kolom- en rigenûmers, en MATCH jout dy nûmers. Dat is it!
Foar fertikale opsykje brûke jo de MATCH-funksje allinich om it rigenûmer te bepalen en it kolomberik direkt oan INDEX:
INDEX ( kolom om in wearde werom te jaan fan, MATCH ( opsykwearde, kolom om op te sykjen, 0))Hast jo noch swierrichheden om dat út te finen? It kin makliker wêze om te begripen út in foarbyld. Stel dat jo in list hawwe mei nasjonale haadstêden en harren befolking:
Om de befolking fan in bepaalde haadstêd te finen, sis de haadstêd fan Japan, brûk de folgjende INDEX MATCH formule:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
No, litte wy analysearje wat elke komponint fan dizze formule eins docht:
- De MATCH-funksje siket nei de opsykwearde "Japan" yn it berik A2: A10, en jout it nûmer 3 werom, om't "Japan" tredde is yn 'e opsykmasjine.
- It rigenûmer giet direkt nei it row_num argumint fan INDEX dat it ynstruearret om dêr in wearde werom te jaan. rige.
Sa, de boppesteande formule feroaret yn in ienfâldige INDEX(C2:C,3) dy't seit om te sykjen yn sellen C2 oant en mei C10 en lûke de wearde út de 3e sel yn dat berik, d.w.s. C4 omdat wy begjinne te tellen fan de twadde rige.
Wolle de stêd net hardcode yn de formule? Fier it yn in sel, sis F1, leverje de selferwizing nei MATCH, en jo krije in dynamyske opsykformule:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Wichtige opmerking! It oantal rigen yn 'e array argumint fan INDEX moat oerienkomme mei it oantal rigen yn it lookup_array argumint fan MATCH, oars sil de formule in ferkeard resultaat produsearje.
Wachtsje, wachtsje... ' Wy brûke gewoan de folgjende Vlookup-formule? Wat is it punt om tiid te fergriemen mei it besykjen om de geheimsinnige wendingen fan Excel MATCH INDEX út te finen?
=VLOOKUP(F1, A2:C10, 3, FALSE)
Yn dit gefal, hielendal gjin punt :) Dit ienfâldige foarbyld is allinich foar demonstraasjedoelen, sadat jo in gefoel krije fan hoe't de INDEX- en MATCH-funksjes gearwurkje. Oare foarbylden dy't hjirûnder folgje sille jo de echte krêft sjen litte fan dizze kombinaasje dy't maklik mei in protte komplekse senario's omgiet as VLOOKUP stroffelet.
Tips:
- Yn Excel 365 en Excel 2021 kinne jo kin in modernere INDEX XMATCH-formule brûke.
- Foar Google Blêden, sjoch formulefoarbylden mei INDEX MATCH yn dit artikel.
INDEX MATCH vs. VLOOKUP
Wannear beslute hokker funksje te brûken foar fertikale lookups, de measte Excel gurus iens dat INDEX MATCH is fier better as VLOOKUP. In protte minsken bliuwe lykwols noch by VLOOKUP, as earste, om't it ienfâldiger is en, twadde, om't se net alle foardielen fan it brûken fan de INDEX MATCH-formule yn Excel folslein begripe. Sûnder sa'n begryp is gjinien ree om har tiid te ynvestearjen om te learenin kompleksere syntaksis.
Hjirûnder sil ik de wichtichste foardielen fan MATCH INDEX oanwize oer VLOOKUP, en jo beslute oft it in weardige oanfolling is oan jo Excel-arsenal.
4 haadredenen om te brûken INDEX MATCH ynstee fan VLOOKUP
- Rjochts nei lofts opsykje. Lykas elke oplate brûker wit, kin VLOOKUP net nei links sjen, wat betsjut dat jo opsykwearde altyd yn 'e lofterste kolom fan de tafel. INDEX MATCH kin lofts sykje mei gemak! It folgjende foarbyld lit it yn aksje sjen: Hoe Vlookup in wearde nei lofts yn Excel.
- Kolommen ynfoegje of wiskje feilich. VLOOKUP-formules wurde brutsen of leveret ferkearde resultaten as in nije kolom is wiske fan of tafoege oan in opsyktabel, om't de syntaksis fan VLOOKUP fereasket dat it yndeksnûmer fan 'e kolom wêrfan jo de gegevens lûke wolle oantsjutte. Fansels, as jo kolommen tafoegje of wiskje, feroaret it yndeksnûmer.
Mei INDEX MATCH spesifisearje jo it berik fan de weromkommende kolom, net in yndeksnûmer. As resultaat binne jo frij om safolle kolommen yn te foegjen en te ferwiderjen as jo wolle sûnder jo soargen te meitsjen oer it bywurkjen fan elke assosjearre formule.
- Gjin limyt foar de grutte fan in opsykwearde. By it brûken fan de VLOOKUP-funksje kin de totale lingte fan jo opsykkritearia net mear wêze as 255 tekens, oars hawwe jo de #VALUE ! fersin. Dus, as jo dataset lange snaren befettet, is INDEX MATCH de ienige wurkjendeoplossing.
- Hegere ferwurkingssnelheid. As jo tabellen relatyf lyts binne, sil der amper in signifikant ferskil wêze yn Excel-prestaasjes. Mar as jo wurkblêden hûnderten of tûzenen rigen befetsje, en dêrtroch hûnderten of tûzenen formules, sil MATCH INDEX folle flugger wurkje as VLOOKUP, om't Excel allinich de opsyk- en weromkolommen moat ferwurkje dan de hiele tabelarray.
De ynfloed fan VLOOKUP op de prestaasjes fan Excel kin foaral merkber wêze as jo wurkboek komplekse arrayformules lykas VLOOKUP en SUM befettet. It punt is dat it kontrolearjen fan elke wearde yn 'e array in aparte oprop fan' e VLOOKUP-funksje fereasket. Dus, hoe mear wearden jo array befettet en hoe mear arrayformules jo yn in wurkboek hawwe, hoe stadiger Excel presteart.
Excel INDEX MATCH - formulefoarbylden
It witten fan de redenen om de MATCH INDEX-funksje te learen, litte wy nei it meast nijsgjirrige diel komme en sjen hoe't jo de teoretyske kennis yn 'e praktyk tapasse kinne.
INDEX MATCH-formule om fan rjochts nei lofts op te sykjen
As al neamd, VLOOKUP kin net sjen op syn linker. Dat, útsein as jo opsykwearden de lofterste kolom binne, is d'r gjin kâns dat in Vlookup-formule jo it resultaat sil bringe dat jo wolle. De funksje INDEX MATCH yn Excel is alsidiger en makket it net echt út wêr't de kolommen opsykje en weromkomme.
Foar dit foarbyld,wy sille de Rank-kolom oan de lofterkant fan ús foarbyldtabel taheakje en besykje út te finen hoe't de Russyske haadstêd, Moskou, ranket yn termen fan befolking.
Mei de opsykwearde yn G1, brûk de folgjende formule om te sykjen yn C2: C10 en werom in oerienkommende wearde út A2: A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Tip. As jo fan plan binne om jo INDEX MATCH-formule foar mear as ien sel te brûken, wês dan wis dat jo beide berik beskoattelje mei absolute selferwizings (lykas $A$2:$A$10 en $C$2:4C$10), sadat se net ferfoarme wurde as it kopiearjen fan de formule.
INDEX MATCH MATCH om te sykjen yn rigen en kolommen
Yn 'e boppesteande foarbylden hawwe wy INDEX MATCH brûkt as ferfanging foar klassike VLOOKUP om in wearde werom te jaan út in foarbepaalde ien-kolom berik. Mar wat as jo moatte opsykje yn meardere rigen en kolommen? Mei oare wurden, wat as jo de saneamde matrix - of twa-wize -opsykje wolle útfiere?
Dit klinkt miskien lestich, mar de formule is tige ferlykber nei de basis Excel INDEX MATCH funksje, mei mar ien ferskil. Tink wat?
Gebrûk gewoan twa MATCH-funksjes - ien om in rigenûmer te krijen en de oare om in kolomnûmer te krijen. En ik lokwinskje dy fan jimme dy't goed rieden :)
INDEX (array, MATCH ( vlookup wearde, kolom om op te sykjen tsjin, 0), MATCH ( hlookup wearde, rige om op te sykjen tsjin, 0))En sjoch no ris nei de tabel hjirûnder en lit ús in INDEX MATCH MATCH bouweformule om de befolking (yn miljoenen) yn in bepaald lân foar in bepaald jier te finen.
Mei it doellân yn G1 (vlookupwearde) en it doeljier yn G2 (hlookupwearde), nimt de formule dizze foarm oan :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
Hoe't dizze formule wurket
As jo in komplekse Excel-formule moatte begripe, splitst dy dan op yn lytsere dielen en sjoch wat elke yndividuele funksje docht:
MATCH(G1,A2:A11,0)
- siket fia A2:A11 foar de wearde yn sel G1 ("Sina") en jout syn posysje werom, dat is 2.
MATCH(G2,B1:D1,0))
- siket troch B1:D1 om de posysje fan 'e wearde te krijen yn sel G2 ("2015"), dat is 3.
De boppesteande rige- en kolomnûmers geane nei de oerienkommende arguminten fan 'e INDEX-funksje:
INDEX(B2:D11, 2, 3)
As resultaat krije jo in wearde op 'e krusing fan' e 2e rige en 3e kolom yn it berik B2:D11, dat is de wearde yn sel D3. Maklik? Yep!
Excel INDEX MATCH om meardere kritearia op te sykjen
As jo de kâns hiene om ús Excel VLOOKUP-tutorial te lêzen, hawwe jo wierskynlik al in formule testen foar Vlookup mei meardere kritearia. In wichtige beheining fan dy oanpak is lykwols de needsaak om in helpkolom ta te foegjen. It goede nijs is dat de INDEX MATCH-funksje fan Excel ek mei twa of mear kritearia opsykje kin, sûnder jo boarnegegevens te wizigjen of te herstrukturearjen!
Hjir is de generike INDEX MATCH-formule mei meardere kritearia:
{=INDEX( returnberik, MATCH(1,