Miten tehdä tapauskohtainen Vlookup Excelissä - kaavaesimerkkejä

  • Jaa Tämä
Michael Brown

Ohjeessa selitetään, miten Excelin VLOOKUP-operaatiosta tehdään tapauskohtainen, esitellään muutamia muita kaavoja, joissa tekstin tapaus erotetaan toisistaan, ja tuodaan esiin kunkin toiminnon vahvuudet ja rajoitukset.

Luulen, että jokainen Excel-käyttäjä tietää, millä funktiolla Excelissä suoritetaan pystysuora haku. Aivan, se on VLOOKUP. Hyvin harvat ihmiset ovat kuitenkin tietoisia siitä, että Excelin VLOOKUP on case-insensitive, eli se käsittelee pieniä ja isoja kirjaimia samoina merkkeinä.

Tässä on nopea esimerkki, joka osoittaa VLOOKUPin kyvyttömyyden erottaa tekstin isoja ja pieniä kirjaimia. Oletetaan, että sinulla on "bill" solussa A2 ja "Bill" solussa A4. Alla oleva kaava nappaa "bill", koska se on ensimmäisenä hakumassassa, ja palauttaa vastaavan arvon solusta B2.

=VLOOKUP("Bill", A2:B4, 2, FALSE)

Tämän artikkelin jatkossa näytän sinulle tavan tehdä VLOOKUPista case-sensitive. Tutustumme myös muutamaan muuhun funktioon, joilla voidaan tehdä case-sensitive-ottelu Excelissä.

    Case-sensitive VLOOKUP-kaava

    Kuten edellä mainittiin, tavallinen VLOOKUP-kaava ei tunnista kirjainten kirjainkokoa. On kuitenkin olemassa tapa tehdä Excelin VLOOKUP-kaavasta kirjainkokoa vastaava, kuten alla olevassa esimerkissä osoitetaan.

    Oletetaan, että sinulla on Kohteen tunnukset sarakkeessa A, ja haluamme hakea tuotteen hinnan ja kommentin sarakkeista B ja C. Ongelmana on, että tunnukset sisältävät sekä pieniä että isoja kirjaimia. Esimerkiksi A4:n (001Tvci3u) ja A5:n (001Tvci3U) arvot eroavat toisistaan vain viimeisen merkin, "u" ja "U", osalta.

    Kun etsit "001Tvci3 U ", tavallinen VLOOKUP-kaava antaa tulokseksi 90 dollaria, joka liittyy kohtaan "001Tvci3". u ", koska se tulee ennen "001Tvci3". U " hakumassassa. Mutta et kai halua tätä?

    =VLOOKUP(F2, A2:C7, 2, FALSE)

    Jos haluat tehdä Excelissä tapauskohtaisen haun, yhdistämme VLOOKUP-, CHOOSE- ja EXACT-toiminnot:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value , lookup_array ), return_array ), 2, 0)

    Tämä yleinen kaava toimii täydellisesti kaikissa tilanteissa. Voit jopa katsoa oikealta vasemmalle , mihin tavallinen VLOOKUP-kaava ei pysty. Kunnia Pouriyalle tämän yksinkertaisen ja tyylikkään ratkaisun ehdottamisesta!

    Meidän tapauksessamme todelliset kaavat ovat seuraavat.

    Voit vetää hinnan F3:lla:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)

    Hae kommentti F4:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)

    Huomautus: Kaikissa muissa Excel-versioissa kuin Excel 365:ssä tämä toimii vain matriisikaavana, joten muista painaa Ctrl + Shift + Enter, jotta saat sen valmiiksi oikein. Excel 365:ssä se toimii dynaamisten matriisien tuen ansiosta myös tavallisena kaavana.

    Miten tämä kaava toimii:

    Ydinosa, joka tekee tempun, on CHOOSE-kaava, jossa on sisäkkäisiä EXACT-kaavoja:

    CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)

    Tässä EXACT-funktio vertaa F2:n arvoa A2:A7:n arvoihin ja palauttaa arvon TRUE, jos ne ovat täsmälleen samat, myös kirjainkirjaimet mukaan lukien, ja muuten FALSE:

    {FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}

    Sillä index_num argumentissa CHOOSE, käytämme array-vakiota {1,2}. Tuloksena funktio yhdistää loogiset arvot yllä olevasta arraysta ja arvot kohdista C2:C7 kaksiulotteiseksi arrayksi seuraavasti:

    {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}

    VLOOKUP-funktio jatkaa siitä ja etsii hakuarvoa (joka on TRUE) 2-ulotteisen matriisin ensimmäisestä sarakkeesta (jota loogiset arvot edustavat) ja palauttaa vastaavuuden toisesta sarakkeesta, joka on etsimämme hinta:

    VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)

    Case-sensitive XLOOKUP-kaava

    Microsoft 365:n tilaajat voivat tehdä Excelissä tapauskohtaisen haun vielä yksinkertaisemmalla kaavalla. Kuten arvaat, puhun VLOOKUPin tehokkaammasta seuraajasta - XLOOKUP-funktiosta.

    Koska XLOOKUP toimii haku- ja palautusmatriiseille erikseen, emme tarvitse edellisen esimerkin kaksiulotteista matriisia koskevaa temppua. Käytä yksinkertaisesti EXACT-merkkiä lookup_array argumentti:

    XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , "Ei löydy")

    Viimeinen argumentti ("Ei löydy") on valinnainen. Se vain määrittelee, mikä arvo palautetaan, jos vastaavuutta ei löydy. Jos jätät sen pois, palautetaan tavallinen #N/A-virhe, jos kaava ei löydä mitään.

    Esimerkkitaulukossamme nämä ovat isot ja pienet kirjaimet huomioon ottavia XLOOKUP-kaavoja.

    Saat hinnan näkyviin F3:lla:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Ei löydy")

    Kommentin poimiminen F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Ei löydy")

    Miten tämä kaava toimii:

    Kuten edellisessä esimerkissä, EXACT palauttaa TRUE- ja FALSE-arvojen joukon, jossa TRUE edustaa isojen ja pienten kirjainten välisiä osumia. XLOOKUP etsii edellä olevasta joukosta TRUE-arvon ja palauttaa osuman kentästä return_array Huomaa, että jos hakusarakkeessa on kaksi tai useampia täsmälleen samanlaisia arvoja (kirjainlaji mukaan lukien), kaava palauttaa ensimmäisen löydetyn vastaavuuden.

    XLOOKUP-rajoitus : käytettävissä vain Excel 365:ssä ja Excel 2021:ssä.

    SUMPRODUCT - suur- ja pienaakkoset huomioiva haku, joka palauttaa vastaavia numeroita.

    Kuten otsikosta käy ilmi, SUMPRODUCT on jälleen yksi Excel-funktio, joka voi tehdä suur- ja pienaakkoset huomioivan haun, mutta se voi palauttaa seuraavat tiedot numeeriset arvot Jos tämä ei ole tapauksesi, siirry INDEX MATCH -esimerkkiin, joka tarjoaa ratkaisun kaikille tietotyypeille.

    Kuten luultavasti tiedät, Excelin SUMPRODUCT-funktio kertoo määrätyissä matriiseissa olevat komponentit ja palauttaa tuotteiden summan. Koska haluamme suur- ja pienaakkoset huomioivan haun, käytämme EXACT-funktiota saadaksemme ensimmäisen matriisin:

    =SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7))))

    Valitettavasti SUMPRODUCT-funktio ei voi palauttaa tekstin vastauksia, koska tekstiarvoja ei voi kertoa. Tässä tapauksessa saat #VALUE! -virheen, kuten alla olevan kuvakaappauksen solussa F4:

    Miten tämä kaava toimii:

    Kuten VLOOKUP-esimerkissä, EXACT-funktio vertaa F2:ssa olevaa arvoa kaikkiin A2:A7:ssä oleviin arvoihin ja palauttaa arvon TRUE, jos kyseessä on isojen ja pienten kirjainten välinen vastaavuus, ja muuten FALSE:

    SUMPRODUCT(({{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28})))

    Useimmissa kaavoissa Excel arvioi TRUE:n arvoksi 1 ja FALSE:n arvoksi 0. Kun SUMPRODUCT siis kertoo kahden matriisin elementit samoissa paikoissa, kaikki ei-täsmäykset (FALSE) muuttuvat nolliksi:

    SUMPRODUCT({0;0;0;54;0;0})

    Tuloksena kaava palauttaa sarakkeesta B numeron, joka vastaa täsmälleen sarakkeessa A olevaa isojen ja pienten kirjainten välistä vastaavuutta.

    SUMPRODUCT-rajoitus : voi palauttaa vain numeerisia arvoja.

    INDEX MATCH - suur- ja pienaakkoset huomioiva haku kaikille tietotyypeille.

    Olemme vihdoin lähellä saada aikaan rajoituksettoman, isojen ja pienten kirjainten suhteen riippumattoman hakukaavan, joka toimii kaikissa Excel-versioissa ja kaikissa tietokokonaisuuksissa.

    Tämä esimerkki tulee viimeisenä, ei vain siksi, että paras säästetään viimeiseksi, vaan myös siksi, että aiemmissa esimerkeissä saamasi tieto voi auttaa sinua ymmärtämään case-sensitive MATCH INDEX -kaavaa paremmin.

    INDEX- ja MATCH-funktioiden yhdistelmää käytetään usein Excelissä joustavampana ja monipuolisempana vaihtoehtona VLOOKUP:lle. Seuraavassa artikkelissa selitetään (toivottavasti :) hyvin, miten nämä kaksi funktiota toimivat yhdessä - INDEX MATCH:n käyttäminen VLOOKUP:n sijasta.

    Muistutan tässä vain keskeisiä kohtia:

    • MATCH-funktio etsii hakuarvoa määritetystä hakumassasta ja palauttaa sen suhteellisen sijainnin.
    • Etsintäarvon suhteellinen sijainti siirtyy suoraan kohtaan row_num INDEX-funktion argumentti, joka käskee sitä palauttamaan arvon kyseiseltä riviltä.

    Jotta kaava tunnistaisi tekstin tapauksen, sinun on vain lisättävä yksi toiminto klassiseen INDEX MATCH -yhdistelmään. Tarvitset luonnollisesti EXACT-funktion uudelleen:

    INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))

    F3:n todellinen kaava on:

    =INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    F4:ssä käytämme tätä:

    =INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    Muistathan, että se toimii vain matriisikaavana kaikissa muissa versioissa kuin Excel 365:ssä, joten muista syöttää se painamalla Ctrl + Shift + Enter -näppäimiä yhdessä. Jos se tehdään oikein, kaava suljetaan sulkeisiin kuten alla olevassa kuvakaappauksessa:

    Miten tämä kaava toimii:

    Kuten kaikissa aiemmissa esimerkeissä, EXACT palauttaa TRUE:n jokaiselle arvolle A2:A7, joka täsmälleen vastaa arvoa F2:ssa. Koska käytämme TRUE:ta arvolle lookup_value MATCH:n tapauksessa se palauttaa tarkan isojen ja pienten kirjainten suhteen, mitä INDEX juuri tarvitsee, jotta se voi palauttaa osuman B2:B7.

    Kehittynyt case-sensitive hakukaava

    Edellä mainittu INDEX MATCH -kaava näyttää täydelliseltä, mutta itse asiassa se ei ole sitä. Näytän sinulle miksi.

    Oletetaan, että hakuarvoa vastaava paluusarakkeen solu on tyhjä. Mitä kaava palauttaa? Ei mitään. Katsotaan nyt, mitä se oikeastaan palauttaa:

    =INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    Hups, kaava palauttaa nollan! Ehkä sillä ei ole merkitystä, kun kyseessä ovat pelkät tekstiarvot, mutta jos laskentataulukkosi sisältää numeroita ja osa niistä on oikeita nollia, tämä on ongelma.

    Todellisuudessa kaikki muut aiemmin käsitellyt hakukaavat käyttäytyvät samalla tavalla. Mutta nythän haluat virheettömän kaavan, eikö niin?

    Jos haluat tehdä isojen ja pienten kirjainten erittelyyn perustuvasta INDEX MATCH -kaavasta täydellisen täydellisen, kiedo se IF-funktioon, joka tarkistaa, onko palautettava solu tyhjä, ja joka ei palauta tässä tapauksessa mitään:

    =IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0))))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))), "")

    Yllä olevassa kaavassa:

    • "C" on paluusarake.
    • "1" on numero, joka muuttaa suhteellinen asema MATCH-funktion palauttaman solun solun todellinen solun osoite .

    Esimerkiksi MATCH-funktiomme hakumatriisi on A2:A7, mikä tarkoittaa, että solun A2 suhteellinen sijainti on "1", koska se on matriisin ensimmäinen solu. Todellisuudessa hakumatriisi alkaa kuitenkin riviltä 2. Eron kompensoimiseksi lisäämme 1:n, jotta INDIRECT-funktio palauttaisi arvon oikeasta solusta.

    Alla olevat kuvakaappaukset osoittavat parannetun isojen ja pienten kirjainten erittelyyn perustuvan INDEX MATCH -kaavan toiminnassa.

    Jos paluusolu on tyhjä, kaava ei tuota mitään (tyhjä merkkijono):

    Jos palautussolu sisältää nollan, kaava palauttaa arvon 0:

    Jos haluat mieluummin näyttää jonkin viestin, kun paluusolu on tyhjä, korvaa tyhjä merkkijono ("") IF:n viimeisessä argumentissa jollakin tekstillä:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0))))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Ei ole mitään palautettavaa, anteeksi."))

    Tee case-sensitiivinen VLOOKUP helposti

    Ultimate Suite for Excel -ohjelmistomme käyttäjillä on käytössään erikoistyökalu, joka tekee etsinnästä helpompaa ja stressitöntä suurissa ja monimutkaisissa taulukoissa. Parasta on se, että Merge Two Tables -vaihtoehdossa on isojen ja pienten kirjainten erottelu, ja alla oleva esimerkki näyttää sen toiminnassa.

    Oletetaan, että haluat vetää Qty.:n osoitteesta Katso taulukkoon Main taulukko, joka perustuu yksilöllisiin nimiketunnuksiin:

    Käynnistä ohjattu Ohjattu taulukoiden yhdistäminen ja suorita seuraavat vaiheet:

    1. Valitse päätaulukko, johon uudet tiedot vedetään.
    2. Valitse hakutaulukko, josta uudet tiedot haetaan.
    3. Valitse yksi tai useampi avainsarake (meidän tapauksessamme Item ID). Muista myös tarkistaa kenttä Case-sensitive matching laatikko.

  • Ohjattu toiminto ohjaa sinut läpi loput kolme vaihetta, joissa määrittelet, mitkä sarakkeet päivitetään, mitkä sarakkeet lisätään ja valitset tarvittaessa joitakin lisäasetuksia.
  • Hetkeä myöhemmin saat halutun tuloksen :)

    Näin voit etsiä Excelissä ottaen huomioon tekstin oikeinkirjoituksen. Kiitän sinua lukemisesta ja toivon, että tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Case-sensitive VLOOKUP -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.