INDEX MATCH Google Sheetsissä - toinen tapa vertikaaliseen hakuun

  • Jaa Tämä
Michael Brown

Kun sinun on löydettävä arkistostasi tietoja, jotka vastaavat tiettyä avaintietoa, turvaudut yleensä Google Sheetsin VLOOKUPiin. Mutta siinäpä se: VLOOKUP lyö sinulle rajoituksia lähes välittömästi. Siksi sinun on parasta lisätä resursseja tehtävään opettelemalla INDEX MATCH.

INDEX MATCH Google Sheetsissä on yhdistelmä kahdesta funktiosta: INDEX ja MATCH. Kun niitä käytetään yhdessä, ne toimivat parempana vaihtoehtona Google Sheetsin VLOOKUP:lle. Tutustutaan niiden ominaisuuksiin yhdessä tässä blogikirjoituksessa. Mutta ensin haluan antaa sinulle lyhyen kierroksen niiden omista rooleista taulukkolaskentaohjelmissa.

    Google Sheetsin MATCH-toiminto

    Aloitan Google Sheetsin MATCH:lla, koska se on todella yksinkertainen. Se etsii datasta tietyn arvon ja palauttaa sen sijainnin:

    =MATCH(search_key, range, [search_type])
    • search_key on etsimäsi levy. Tarvitaan.
    • alue on joko rivi tai sarake, josta etsitään. Required.

      Huomaa: MATCH hyväksyy vain yksiulotteisia matriiseja: joko rivin tai sarakkeen.

    • search_type on valinnainen, ja se määrittää, pitääkö vastaavuuden olla tarkka vai likimääräinen. Jos se jätetään pois, se on oletusarvoisesti 1:
      • 1 tarkoittaa, että alue lajitellaan nousevaan järjestykseen. Funktio hakee suurimman arvon, joka on pienempi tai yhtä suuri kuin sinun search_key .
      • 0 saa funktion etsimään tarkkaa vastaavuutta, jos alueesi ei ole lajiteltu.
      • -1 vihjaa, että tietueet asetetaan järjestykseen alenevaa lajittelua käyttäen. Tässä tapauksessa funktio saa pienimmän arvon, joka on suurempi tai yhtä suuri kuin sinun search_key .

    Tässä on esimerkki: saadakseni tietyn marjan sijainnin kaikkien marjojen luettelossa tarvitsen seuraavan MATCH-kaavan Google Sheetsissä:

    =MATCH("Mustikka", A1:A10, 0)

    Google Sheets INDEX-toiminto

    MATCH näyttää, mistä arvo on etsittävä (sen sijainti alueella), mutta Google Sheetsin INDEX-funktio hakee itse arvon rivin ja sarakkeen etäisyyksien perusteella:

    =INDEX(viite, [rivi], [sarake])
    • viite on alue, jota on tarkasteltava. Tarvitaan.
    • rivi on rivien lukumäärä, joka siirretään alueen ensimmäisestä solusta. Valinnainen, 0, jos jätetään pois.
    • sarake , aivan kuten rivi , on offset-sarakkeiden lukumäärä. Myös valinnainen, myös 0, jos jätetään pois.

    Jos määrität molemmat valinnaiset argumentit (rivi ja sarake), Google Sheets INDEX palauttaa tietueen kohdesolusta:

    =INDEX(A1:C10, 7, 1)

    Jos jätät yhden näistä argumenteista väliin, funktio antaa sinulle koko rivin tai sarakkeen vastaavasti:

    =INDEX(A1:C10, 7)

    INDEX MATCHin käyttö Google Sheetsissä - kaavaesimerkkejä

    Kun INDEXiä ja MATCHia käytetään yhdessä laskentataulukoissa, ne ovat parhaimmillaan. Ne voivat ehdottomasti korvata Google Sheetsin VLOOKUPin ja hakea halutun tietueen taulukosta avainarvon perusteella.

    Rakenna ensimmäinen INDEX MATCH -kaava Google Sheetsille

    Oletetaan, että haluat saada karpalon varastotiedot samasta taulukosta, jota käytin edellä. Vaihdoin vain sarakkeet B ja C (miksi, selviää hieman myöhemmin).

    1. Nyt kaikki marjat on lueteltu sarakkeessa C. Google Sheetsin MATCH-toiminto auttaa sinua löytämään karpalon tarkan rivin: 8

      =MATCH("Karpalo", C1:C10, 0)

    2. Laita koko MATCH-kaava rivi argumentti INDEX-funktiossa:

      =INDEX(A1:C10, MATCH("Karpalo", C1:C10, 0))

      Tämä palauttaa koko rivin, jossa on karpaloa.

    3. Mutta koska tarvitset vain varastotiedot, määritä myös hakusarakkeen numero: 3

      =INDEX(A1:C10, MATCH("Karpalo", C1:C10,0), 2)

    4. Voila!

    5. Voit mennä pidemmälle ja luopua viimeisestä sarakeindikaattorista ( 2 Et tarvitse sitä lainkaan, jos käytät vain hakusaraketta ( B1:B10 ) eikä koko taulukkoa ( A1:C10 ) ensimmäisenä argumenttina:

      =INDEX(B1:B10, MATCH("Karpalo", C1:C10, 0))

      Vinkki. Kätevämpi tapa tarkistaa eri marjojen saatavuus olisi sijoittaa ne pudotusluetteloon ( E2 ) ja viittaat MATCH-funktiolla soluun, jossa on kyseinen luettelo:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      Kun valitset marjan, siihen liittyvä arvo muuttuu vastaavasti:

    Miksi INDEX MATCH Google Sheetsissä on parempi kuin VLOOKUP?

    Tiedät jo, että Google Sheetsin INDEX MATCH etsii arvosi taulukosta ja palauttaa toisen liittyvän tietueen samalta riviltä. Tiedät myös, että Google Sheetsin VLOOKUP tekee täsmälleen saman. Miksi siis vaivautua?

    Asia on niin, INDEX MATCH on joitakin merkittäviä etuja VLOOKUPin yli:

    1. Vasemmanpuoleinen haku on mahdollista Vaihdoin sarakkeiden paikkoja aiemmin havainnollistamaan tätä: Google Sheetsin INDEX MATCH -toiminto voi etsiä ja etsii hakusarakkeen vasemmalta puolelta. VLOOKUP etsii aina alueen ensimmäisestä sarakkeesta ja etsii osumia sen oikealta puolelta - muuten se saa vain #N/A-virheitä:

    2. Uusia sarakkeita lisättäessä ja olemassa olevia siirrettäessä ei ole sekavia viittauksia. Jos lisäät tai siirrät sarakkeita, INDEX MATCH vastaa muutoksiin automaattisesti puuttumatta tulokseen. Koska käytät sarakeviittauksia, Google Sheets mukauttaa ne välittömästi:

      Yritä tehdä tämä VLOOKUP:lla: se vaatii tilausnumeron eikä soluviittauksia hakusarakkeelle. Näin ollen saat väärän arvon, koska toinen sarake ottaa saman paikan - sarake 2 esimerkissäni:

    3. Harkitsee tekstin tapausta tarvittaessa (tästä lisää jäljempänä).
    4. Voidaan käyttää useisiin kriteereihin perustuvaan vertikaaliseen hakuun.

    Pyydän teitä tarkastelemaan kahta viimeistä kohtaa yksityiskohtaisesti jäljempänä.

    Case-sensitiivinen v-lookup INDEX MATCHin avulla Google Sheetsissä

    INDEX MATCH on hyvä valinta, kun on kyse isojen ja pienten kirjainten herkkyydestä.

    Oletetaan, että kaikkia marjoja myydään kahdella tavalla - irtotavarana (tiskillä punnittuna) ja pakattuina laatikoihin. Näin ollen luettelossa on kaksi eri tapauksiin kirjoitettua marjaa, joilla kullakin on oma tunnuksensa, joka myös vaihtelee tapauksittain:

    Miten voit siis etsiä tietyllä tavalla myydyn marjan varastotietoja? VLOOKUP palauttaa ensimmäisen löytämänsä nimen riippumatta sen tapauksesta.

    Onneksi INDEX MATCH for Google Sheets voi tehdä sen oikein, ja sinun on käytettävä vain yhtä lisätoimintoa - FIND tai EXACT.

    Esimerkki 1. FIND case-sensitiivistä Vlookupia varten

    FIND on Google Sheetsissä case-sensitive-toiminto, joten se sopii erinomaisesti case-sensitive vertikaaliseen hakuun:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0)))

    Katsotaan, mitä tässä kaavassa tapahtuu:

    1. FIND skannaa sarakkeen C ( C2:C19 ) kirjaa varten osoitteesta E2 ( kirsikka ) ottaen huomioon sen kirjainkirjaimet. Kun se on löydetty, kaava "merkitsee" kyseisen solun numerolla - - 1 .
    2. MATCH etsii tätä merkkiä - 1 - samassa sarakkeessa ( C ) ja antaa rivin numeron INDEXille.
    3. INDEX tulee kyseiselle riville sarakkeessa B ( B2:B19 ) ja hakee sinulle tarvittavan tietueen.
    4. Kun olet saanut kaavan valmiiksi, paina Ctrl+Shift+Enter lisätäksesi ArrayFormula-kaavan alkuun. Se on välttämätön, koska ilman sitä FIND ei pysty hakemaan matriiseista (useammasta kuin yhdestä solusta). Tai voit kirjoittaa ' ArrayFormula ' näppäimistöltä.

    Esimerkki 2. EXACT case-sensitiivistä Vlookupia varten

    Jos korvaat FIND:n EXACT:lla, jälkimmäinen etsii tietueet, joissa on täsmälleen samat merkit, mukaan lukien niiden tekstin iskut.

    Ainoa ero on se, että EXACT "merkitsee" ottelun, jossa on TRUE numeron sijasta 1 Näin ollen MATCHin ensimmäisen argumentin pitäisi olla seuraava. TRUE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0))))

    Google Sheets INDEX MATCH useilla kriteereillä

    Entä jos on useita ehtoja, joiden perusteella haluat hakea tietueen?

    Tarkistetaanpa hinta kirsikka jota myydään PP-ämpärit ja on jo loppumassa :

    Järjestin kaikki kriteerit pudotusluetteloihin sarakkeessa F. Ja Google Sheetsin INDEX MATCH tukee useita kriteerejä, ei VLOOKUP. Tässä on kaava, jota sinun on käytettävä:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),)))

    Älä hätäänny! :) Sen logiikka on itse asiassa melko yksinkertainen:

    1. CONCATENATE(F2:F4) yhdistää kaikki kolme tietuetta soluista, joissa on kriteerit, yhdeksi merkkijonoksi näin:

      CherryPP ämpäriLoppuu

      Tämä on search_key for MATCH, tai toisin sanoen, mitä etsit taulukosta.

    2. A2:A24&C2:C24&D2:D24 muodostavat alue Koska kaikki kolme kriteeriä ovat kolmessa eri sarakkeessa, ne tavallaan yhdistetään:

      KirsikkaKartonkitarjotinVarastossa

      CherryFilm-pakkausEi varastossa

      CherryPP ämpäriLoppuu

      jne.

    3. Viimeinen argumentti MATCH - 0 - mahdollistaa täsmällisen vastineen löytämisen CherryPP ämpäriLoppuu Kuten näet, se on kolmannella rivillä.
    4. Sitten INDEX tekee tehtävänsä: se hakee tietueen sarakkeen B kolmannelta riviltä.
    5. ArrayFormulaa käytetään, jotta muut funktiot voivat työskennellä matriisien kanssa.

    Vihje. Jos kaava ei löydä vastaavuutta, se palauttaa virheen. Voit välttää sen kietomalla koko kaavan muotoon IFERROR (tee siitä ensimmäinen argumentti) ja kirjoittamalla toisena argumenttina sen, mitä haluat nähdä solussa virheiden sijasta:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),))), "Ei löydy")

    Parempi vaihtoehto INDEX MATCHille Google Sheetsissä - Useita VLOOKUP-otteluita varten

    Mitä tahansa hakutoimintoa haluatkin, VLOOKUPia tai INDEX MATCHia, on olemassa parempi vaihtoehto molemmille.

    Multiple VLOOKUP Matches on erityinen lisäosa Google Sheetsille, jonka tarkoituksena on:

    • haku ilman kaavoja
    • haku kaikkiin suuntiin
    • haku useilla ehdoilla eri tietotyypeille: teksti, numerot, päivämäärät, aika, jne.
    • hae useita otteluita, niin monta kuin tarvitset (edellyttäen tietysti, että niitä on taulukossa yhtä monta).

    Käyttöliittymä on yksinkertainen, joten sinun ei tarvitse epäillä, teetkö kaiken oikein:

    1. Valitse lähdealue.
    2. Määritä palautettavien osumien ja sarakkeiden määrä.
    3. Hienosäädä ehtoja käyttämällä ennalta määritettyjä operaattoreita ( sisältää, =, ei tyhjä , välillä jne.).

    Pystyt myös:

    • tuloksen esikatselu
    • päättää, mihin se sijoitetaan
    • ja miten: kaavana tai pelkkinä arvoina

    Älä missaa tätä tilaisuutta tarkistaa lisäosa. Asenna se Google Workspace Marketplace -palvelusta. Sen ohjesivu selittää jokaisen vaihtoehdon yksityiskohtaisesti.

    Valmistimme myös erityisen opetusvideon:

    Nähdään alla olevissa kommenteissa tai seuraavassa artikkelissa ;)

    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.