Excel INDEX MATCH vs. VLOOKUP - kaavaesimerkkejä

  • Jaa Tämä
Michael Brown

Tämä opetusohjelma näyttää, miten INDEXiä ja MATCHia käytetään Excelissä ja miten se on parempi kuin VLOOKUP.

Parissa viimeaikaisessa artikkelissa olemme pyrkineet selittämään VLOOKUP-toiminnon perusteet aloittelijoille ja antamaan monimutkaisempia VLOOKUP-kaavaesimerkkejä tehokäyttäjille. Ja nyt yritän, jos en yritä puhua sinua pois VLOOKUP-toiminnon käytöstä, niin ainakin näyttää vaihtoehtoisen tavan tehdä pystysuora haku Excelissä.

"Mihin minä sitä tarvitsen?" saatat ihmetellä. Koska VLOOKUPilla on lukuisia rajoituksia, jotka voivat estää sinua saamasta haluttua tulosta monissa tilanteissa. Toisaalta INDEX MATCH -yhdistelmä on joustavampi ja sillä on monia mahtavia ominaisuuksia, jotka tekevät siitä VLOOKUPia paremman monessa suhteessa.

    Excelin INDEX- ja MATCH-funktiot - perusteet

    Koska tämän opetusohjelman tavoitteena on esitellä vaihtoehtoinen tapa tehdä vlookup Excelissä käyttämällä INDEX- ja MATCH-funktioiden yhdistelmää, emme keskity paljon niiden syntaksiin ja käyttöön. Käsittelemme vain sen, mikä on välttämätöntä yleisen idean ymmärtämiseksi, ja tarkastelemme sitten perusteellisesti kaavaesimerkkejä, jotka paljastavat kaikki edut, joita INDEX MATCHin käyttäminen VLOOKUPin sijasta tarjoaa.

    INDEX-funktio - syntaksi ja käyttö

    Excelin INDEX-funktio palauttaa arvon matriisissa määrittämiesi rivi- ja sarakenumeroiden perusteella. INDEX-funktion syntaksi on yksinkertainen:

    INDEX(array, row_num, [column_num])

    Seuraavassa on hyvin yksinkertainen selitys kustakin parametrista:

    • array - solualue, josta haluat palauttaa arvon.
    • row_num - rivin numero matriisissa, josta haluat palauttaa arvon. Jos se jätetään pois, sarakkeen_num on pakollinen.
    • column_num - sarakkeen numero sarakkeessa, josta haluat palauttaa arvon. Jos se jätetään pois, row_num on pakollinen.

    Lisätietoja on Excelin INDEX-toiminnossa.

    Tässä on esimerkki INDEX-kaavasta yksinkertaisimmassa muodossaan:

    =INDEX(A1:C10,2,3)

    Kaava etsii soluista A1-C10 ja palauttaa arvon solusta 2. rivillä ja 3. sarakkeessa, eli solusta C2.

    Eikö olekin helppoa? Kun kuitenkin työskentelet oikean datan kanssa, tuskin koskaan tiedät, minkä rivin ja sarakkeen haluat, ja tässä kohtaa MATCH-toiminto on kätevä.

    MATCH-funktio - syntaksi ja käyttö

    Excelin MATCH-toiminto etsii hakuarvoa solualueelta ja palauttaa sen. suhteellinen asema kyseisen arvon vaihteluväli.

    MATCH-funktion syntaksi on seuraava:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - etsimäsi numero tai tekstiarvo.
    • lookup_array - etsittävien solujen alue.
    • match_type - määrittää, palautetaanko tarkka vai lähin vastaavuus:
      • 1 tai jätetään pois - etsii suurimman arvon, joka on pienempi tai yhtä suuri kuin hakuarvo. Edellyttää hakumassan lajittelua nousevaan järjestykseen.
      • 0 - löytää ensimmäisen arvon, joka on täsmälleen sama kuin hakuarvo. INDEX / MATCH -yhdistelmässä tarvitset lähes aina täsmällisen vastaavuuden, joten asetat MATCH-funktion kolmannen argumentin arvoksi 0.
      • -1 - etsii pienimmän arvon, joka on suurempi tai yhtä suuri kuin lookup_value. Edellyttää lookup-matriisin lajittelua laskevassa järjestyksessä.

    Jos esimerkiksi alue B1:B3 sisältää arvot "New-York", "Pariisi" ja "Lontoo", alla oleva kaava palauttaa luvun 3, koska "Lontoo" on alueen kolmas merkintä:

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

    Lisätietoja on Excelin MATCH-toiminnossa.

    Ensi näkemältä MATCH-funktion hyödyllisyys saattaa vaikuttaa kyseenalaiselta. Ketä kiinnostaa arvon sijainti alueella? Haluamme tietää itse arvon.

    Muistutan sinua siitä, että hakuarvon suhteellinen sijainti (eli rivin ja sarakkeen numerot) on juuri se, mitä sinun on annettava funktiolle row_num ja column_num Kuten muistat, Excelin INDEX-toiminto voi löytää arvon tietyn rivin ja sarakkeen yhtymäkohdasta, mutta se ei voi määrittää, minkä rivin ja sarakkeen haluat.

    Kuinka käyttää INDEX MATCH -toimintoa Excelissä?

    Nyt kun tunnet perusasiat, uskon, että on jo alkanut olla järkevää, miten MATCH ja INDEX toimivat yhdessä. Lyhyesti sanottuna INDEX etsii hakuarvon sarake- ja rivinumeroiden avulla, ja MATCH antaa nämä numerot. Siinä kaikki!

    Pystysuuntaista hakua varten käytät MATCH-funktiota vain rivinumeron määrittämiseen ja annat sarakealueen suoraan INDEXille:

    INDEX ( sarakkeessa palauttaa arvon , MATCH ( hakuarvo , sarake, jota vastaan voi katsoa , 0))

    Vieläkö sinulla on vaikeuksia ymmärtää tätä? Asia on ehkä helpompi ymmärtää esimerkin avulla. Oletetaan, että sinulla on luettelo valtioiden pääkaupungeista ja niiden väkiluvusta:

    Jos haluat löytää tietyn pääkaupungin, esimerkiksi Japanin pääkaupungin, väkiluvun, käytä seuraavaa INDEX MATCH -kaavaa:

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

    Analysoidaanpa nyt, mitä tämän kaavan kukin osa oikeastaan tekee:

    • MATCH-funktio etsii hakuarvoa "Japani" alueelta A2:A10 ja palauttaa luvun 3, koska "Japani" on hakumassan kolmas.
    • Rivin numero menee suoraan row_num INDEX-argumentti, joka käskee sitä palauttamaan arvon kyseiseltä riviltä.

    Yllä oleva kaava muuttuu siis yksinkertaiseksi INDEX(C2:C,3) -kaavaksi, jonka mukaan soluista C2-C10 haetaan arvo alueen kolmannesta solusta, eli C4:stä, koska laskenta aloitetaan toiselta riviltä.

    Jos et halua koodata kaupunkia kaavaan? Syötä se johonkin soluun, esimerkiksi F1, ja anna soluviittaus MATCH:iin, niin saat dynaamisen hakukaavan:

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

    Tärkeä huomautus! Rivien lukumäärä array INDEX-argumentin pitäisi vastata rivien lukumäärää tiedostossa lookup_array argumentin MATCH, muuten kaava tuottaa väärän tuloksen.

    Odota, odota... miksi emme yksinkertaisesti käytä seuraavaa Vlookup-kaavaa? Mitä järkeä on tuhlata aikaa Excelin MATCH INDEXin salaperäisten käänteiden selvittämiseen?

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

    Tässä tapauksessa ei ole mitään järkeä :) Tämä yksinkertainen esimerkki on vain esittelytarkoituksessa, jotta saat käsityksen siitä, miten INDEX- ja MATCH-toiminnot toimivat yhdessä. Seuraavat esimerkit osoittavat tämän yhdistelmän todellisen tehon, sillä se selviytyy helposti monista monimutkaisista skenaarioista, joissa VLOOKUP kompastuu.

    Vinkkejä:

    • Excel 365:ssä ja Excel 2021:ssä voit käyttää nykyaikaisempaa INDEX XMATCH -kaavaa.
    • Google Sheetsin osalta katso kaavaesimerkkejä INDEX MATCHin avulla tästä artikkelista.

    INDEX MATCH vs. VLOOKUP

    Kun päätetään, mitä funktiota käyttää pystysuoriin hakuihin, useimmat Excel-gurut ovat yhtä mieltä siitä, että INDEX MATCH on paljon parempi kuin VLOOKUP. Monet ihmiset pysyvät kuitenkin edelleen VLOOKUPissa, ensinnäkin koska se on yksinkertaisempi ja toiseksi koska he eivät täysin ymmärrä kaikkia etuja, joita INDEX MATCH -kaavan käyttäminen Excelissä tuo mukanaan. Ilman tällaista ymmärrystä kukaan ei ole halukas sijoittamaan aikaansa monimutkaisemman INDEX MATCH -kaavan oppimiseen.syntaksi.

    Seuraavassa esittelen MATCH INDEXin tärkeimmät edut VLOOKUPiin verrattuna, ja sinä päätät, onko se arvokas lisä Excel-arsenaaliisi.

    4 tärkeintä syytä käyttää INDEX MATCHia VLOOKUPin sijasta.

    1. Etsintä oikealta vasemmalle. Kuten kaikki koulutetut käyttäjät tietävät, VLOOKUP ei voi katsoa vasemmalle, mikä tarkoittaa, että hakuarvosi pitäisi aina olla taulukon vasemmanpuoleisimmassa sarakkeessa. INDEX MATCH voi tehdä vasemmanpuoleisen haun helposti! Seuraava esimerkki näyttää sen toiminnassa: Kuinka Vlookup-arvo haetaan vasemmalle Excelissä.
    2. Lisää tai poista sarakkeita turvallisesti. VLOOKUP-kaavat menevät rikki tai antavat virheellisiä tuloksia, kun hakutaulukosta poistetaan tai siihen lisätään uusi sarake, koska VLOOKUPin syntaksi edellyttää sen sarakkeen indeksinumeron määrittämistä, josta tiedot halutaan poimia. Kun sarakkeita lisätään tai poistetaan, indeksinumero luonnollisesti muuttuu.

      INDEX MATCH -toiminnolla määrität palautettavan sarakealueen, et indeksin numeroa. Tämän seurauksena voit lisätä ja poistaa niin monta saraketta kuin haluat ilman, että sinun on huolehdittava jokaisen siihen liittyvän kaavan päivittämisestä.

    3. Ei rajoitusta hakuarvon koolle. Kun käytät VLOOKUP-toimintoa, hakuehtojen kokonaispituus ei saa ylittää 255 merkkiä, muuten saat #VALUE! -virheen. Jos tietokokonaisuutesi sisältää pitkiä merkkijonoja, INDEX MATCH on ainoa toimiva ratkaisu.
    4. Suurempi prosessointinopeus. Jos taulukot ovat suhteellisen pieniä, Excelin suorituskyvyssä tuskin on merkittävää eroa. Mutta jos työarkit sisältävät satoja tai tuhansia rivejä ja siten satoja tai tuhansia kaavoja, MATCH INDEX toimii paljon nopeammin kuin VLOOKUP, koska Excelin on käsiteltävä vain haku- ja palautussarakkeet eikä koko taulukkomäärää.

      VLOOKUPin vaikutus Excelin suorituskykyyn voi olla erityisen huomattava, jos työkirjasi sisältää monimutkaisia matriisikaavoja, kuten VLOOKUP ja SUM. Kyse on siitä, että jokaisen matriisin arvon tarkistaminen edellyttää erillistä VLOOKUP-funktion kutsua. Mitä enemmän arvoja matriisi sisältää ja mitä enemmän matriisikaavoja työkirjassa on, sitä hitaammin Excel toimii.

    Excel INDEX MATCH - kaavaesimerkkejä

    Kun tiedät, miksi MATCH INDEX -funktiota kannattaa opetella, siirrymme nyt mielenkiintoiseen osaan ja katsomme, miten voit soveltaa teoreettista tietoa käytännössä.

    INDEX MATCH -kaava, joka näyttää ylöspäin oikealta vasemmalle.

    Kuten jo mainittiin, VLOOKUP ei voi katsoa vasemmalle. Jos hakuarvot eivät siis ole vasemmanpuoleisimmassa sarakkeessa, Vlookup-kaavalla ei ole mitään mahdollisuuksia saada haluamaasi tulosta. Excelin INDEX MATCH -toiminto on monipuolisempi, eikä sillä ole väliä, missä haku- ja palautussarakkeet sijaitsevat.

    Tässä esimerkissä lisäämme esimerkkitaulukkomme vasemmalle puolelle sarakkeen Sijoitus ja yritämme selvittää, miten Venäjän pääkaupunki Moskova sijoittuu väestömäärältään.

    Kun G1:ssä on hakuarvo, käytä seuraavaa kaavaa etsiessäsi C2:C10:stä ja palauttaaksesi vastaavan arvon A2:A10:stä:

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

    Vihje: Jos aiot käyttää INDEX MATCH -kaavaa useammassa kuin yhdessä solussa, varmista, että lukitset molemmat alueet absoluuttisilla soluviittauksilla (kuten $A$2:$A$10 ja $C$2:4C$10), jotta ne eivät vääristy kaavaa kopioitaessa.

    INDEX MATCH MATCH haku riveillä ja sarakkeissa.

    Yllä olevissa esimerkeissä käytimme INDEX MATCH:ia korvaamaan klassisen VLOOKUP:in palauttamaan arvon ennalta määritellystä yhden sarakkeen alueesta. Mutta entä jos sinun täytyy etsiä useammalta riviltä ja sarakkeelta? Toisin sanoen, entä jos haluat suorittaa ns. matriisi tai kaksisuuntainen lookup?

    Tämä saattaa kuulostaa hankalalta, mutta kaava on hyvin samankaltainen kuin Excelin INDEX MATCH -perusfunktio, vain yhdellä erolla. Arvaa mitä?

    Käytä yksinkertaisesti kahta MATCH-funktiota - toinen rivinumeron ja toinen sarakkeen numeron saamiseksi. Ja onnittelen niitä, jotka ovat arvanneet oikein :)

    INDEX (array, MATCH ( vlookup-arvo , sarake, jota vastaan voi katsoa , 0), MATCH ( hlookup-arvo , rivi, jota vastaan voi katsoa , 0))

    Katsokaa nyt alla olevaa taulukkoa ja rakentakaamme INDEX MATCH MATCH -kaava, jolla löydetään tietyn maan väkiluku (miljoonina) tiettynä vuonna.

    Kun kohdemaa on G1 (vlookup-arvo) ja kohdevuosi G2 (hlookup-arvo), kaava on seuraavanlainen:

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

    Miten tämä kaava toimii

    Kun sinun on ymmärrettävä monimutkainen Excel-kaava, jaa se pienempiin osiin ja katso, mitä kukin yksittäinen funktio tekee:

    MATCH(G1,A2:A11,0) - etsii solun G1 ("Kiina") arvoa solusta A2:A11 ja palauttaa sen sijainnin, joka on 2.

    MATCH(G2,B1:D1,0))) - etsii solun B1:D1 kautta solun G2 ("2015") arvon sijainnin, joka on 3.

    Yllä olevat rivin ja sarakkeen numerot vastaavat INDEX-funktion argumentteja:

    INDEX(B2:D11, 2, 3)

    Tuloksena saat arvon alueen B2:D11 2. rivin ja 3. sarakkeen leikkauspisteeseen, joka on solun D3 arvo. Helppoa? Jep!

    Excel INDEX MATCH useiden kriteerien etsimiseen

    Jos sinulla oli tilaisuus lukea Excelin VLOOKUP-opas, olet luultavasti jo testannut Vlookup-kaavaa useilla kriteereillä. Tämän lähestymistavan merkittävä rajoitus on kuitenkin tarve lisätä apusarake. Hyvä uutinen on, että Excelin INDEX MATCH-funktio voi tehdä hakuja myös kahdella tai useammalla kriteerillä ilman, että lähdetietojasi tarvitsee muuttaa tai uudistaa!

    Tässä on yleinen INDEX MATCH -kaava, jossa on useita kriteerejä:

    {=INDEX( return_range , MATCH(1, ( kriteerit1 = range1 ) * ( kriteerit2 = range2 ), 0))}

    Huomautus: Tämä on matriisikaava, joka on täytettävä Ctrl + Shift + Enter -pikanäppäimillä.

    Oletetaan, että alla olevassa esimerkkitaulukossa halutaan löytää summa kahden kriteerin perusteella, Asiakas ja Tuote .

    Seuraava INDEX MATCH -kaava toimii hyvin:

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

    Jossa C2:C10 on alue, josta arvo palautetaan, F1 on kriteeri 1, A2:A10 on alue, jota verrataan kriteeriin 1, F2 on kriteeri 2 ja B2:B10 on alue, jota verrataan kriteeriin 2.

    Muista syöttää kaava oikein painamalla Ctrl + Shift + Enter, ja Excel sulkee sen automaattisesti sulkeisiin, kuten kuvakaappauksessa näkyy:

    Jos et mieluummin käyttäisi matriisikaavoja työarkissasi, lisää kaavaan vielä yksi INDEX-funktio ja täydennä se tavallisella Enter-näppäimellä:

    Miten nämä kaavat toimivat

    Kaavat käyttävät samaa lähestymistapaa kuin INDEX MATCH -perusfunktio, joka tarkastelee yhtä saraketta. Useiden kriteerien arvioimiseksi luot kaksi tai useampia TRUE- ja FALSE-arvojen matriiseja, jotka edustavat kunkin yksittäisen kriteerin vastaavuutta ja yhteensopimattomuutta, ja sitten kerrot näiden matriisien vastaavat elementit. Kertolasku muuttaa TRUE- ja FALSE-arvot 1:ksi ja 0:ksi,ja tuottaa matriisin, jossa 1:t vastaavat rivejä, jotka täyttävät kaikki kriteerit. MATCH-funktio, jonka hakuarvo on 1, etsii matriisin ensimmäisen "1:n" ja välittää sen sijainnin INDEX:lle, joka palauttaa kyseisen rivin arvon määritetystä sarakkeesta.

    Kaava, jossa ei ole matriiseja, luottaa INDEX-funktion kykyyn käsitellä matriiseja natiivisti. Toinen INDEX on määritetty arvolla 0. row_num jotta se välittää koko sarakemäärän MATCHille.

    Tämä on korkean tason selitys kaavan logiikasta. Tarkemmat tiedot löydät Excel INDEX MATCH useilla kriteereillä.

    Excel INDEX MATCH keskiarvon, MAX, MIN kanssa

    Microsoft Excelissä on erikoisfunktioita, joiden avulla voit etsiä alueen minimi-, maksimi- ja keskiarvoja. Entä jos sinun on saatava arvo toisesta solusta, joka liittyy kyseisiin arvoihin? Käytä tällöin MAX-, MIN- tai AVERAGE-funktiota yhdessä INDEX MATCH -toiminnon kanssa.

    INDEX MATCH ja MAX

    Jos haluat löytää suurimman arvon sarakkeesta D ja palauttaa arvon sarakkeesta C samalta riviltä, käytä tätä kaavaa:

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

    INDEX MATCH ja MIN

    Jos haluat etsiä sarakkeen D pienimmän arvon ja vetää siihen liittyvän arvon sarakkeesta C, käytä tätä:

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

    INDEX MATCH ja AVERAGE

    Jos haluat laskea arvon, joka on lähimpänä D2:D10:n keskiarvoa, ja saada vastaavan arvon sarakkeesta C, voit käyttää seuraavaa kaavaa:

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

    Riippuen siitä, miten tietosi on järjestetty, anna MATCH-funktion kolmanteen argumenttiin (match_type) joko 1 tai -1:

    • Jos hakusarakkeesi (meidän tapauksessamme sarake D) on lajiteltu seuraavasti nouseva , laita 1. Kaava laskee suurimman arvon, joka on alle tai yhtä suuri kuin keskiarvo.
    • Jos hakusarakkeesi on lajiteltu laskeva , kirjoita -1. Kaava laskee pienimmän arvon, joka on suurempi kuin tai yhtä suuri kuin keskiarvo.
    • Jos hakumassasi on arvo täsmälleen yhtä suuri keskiarvoon, voit syöttää 0, jos haluat tarkan vastaavuuden. Lajittelua ei tarvita.

    Esimerkissämme sarakkeen D väestömäärät on lajiteltu alenevaan järjestykseen, joten käytämme vastaavuustyypiksi -1. Tulokseksi saamme "Tokio", koska sen väestömäärä (13 189 000) on lähin vastaavuus, joka on suurempi kuin keskimääräinen (12 269 006).

    Saatat olla utelias tietämään, että myös VLOOKUP voi suorittaa tällaisia laskutoimituksia, mutta matriisikaavana: VLOOKUP with AVERAGE, MAX, MIN.

    INDEX MATCHin käyttäminen IFNA / IFERRORin kanssa

    Kuten olet varmaan huomannut, jos Excelin INDEX MATCH -kaava ei löydä hakuarvoa, se tuottaa #N/A-virheen. Jos haluat korvata vakiovirhemerkinnän jollain mielekkäämmällä, kiedo INDEX MATCH -kaava IFNA-funktioon. Esimerkiksi:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Vastausta ei löydy")

    Ja nyt, jos joku syöttää hakutaulukon, jota ei ole hakualueella, kaava ilmoittaa käyttäjälle nimenomaisesti, että vastaavuutta ei löydy:

    Jos haluat saada kiinni kaikki virheet, etkä vain #N/A, käytä IFERROR-funktiota IFNA:n sijasta:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Hups, jotain meni pieleen!")

    Muista, että monissa tilanteissa ei ehkä ole viisasta peittää kaikkia virheitä, koska ne varoittavat sinua mahdollisista virheistä kaavassa.

    Näin käytät INDEX- ja MATCH-kaavoja Excelissä. Toivottavasti kaavaesimerkkiemme esimerkit osoittautuvat hyödyllisiksi sinulle ja odotan innolla, että tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Excel INDEX MATCH -esimerkkejä (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.