Hoe om hooflettersensitiewe Vlookup in Excel te doen – formulevoorbeelde

  • Deel Dit
Michael Brown

Die tutoriaal verduidelik hoe om Excel VLOOKUP hooflettergevoelig te maak, demonstreer 'n paar ander formules wat teksgeval onderskei, en wys sterk punte en beperkings van elke funksie uit.

Ek dink elke Excel-gebruiker weet watter funksie 'n vertikale soektog in Excel uitvoer. Reg, dit is VLOOKUP. Baie min mense is egter bewus daarvan dat Excel se VLOOKUP hoofletter-onsensitief is, wat beteken dat dit kleinletters en HOOFLETTERS as dieselfde karakters hanteer.

Hier is 'n vinnige voorbeeld wat VLOOKUP se onvermoë om teksletters te onderskei demonstreer. Gestel as jy "bill" in sel A2 en "Bill" in A4 het. Die onderstaande formule sal "rekening" vang, want dit kom eerste in die opsoekskikking en gee 'n ooreenstemmende waarde vanaf B2.

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

Verder in hierdie artikel, sal ek jou 'n manier wys om VLOOKUP hooflettersensitief te maak. Ons sal ook 'n paar ander funksies ondersoek wat 'n hoofletter-sensitiewe passing in Excel kan doen.

    Hooflettersensitiewe VLOOKUP-formule

    Soos hierbo genoem, 'n gewone VLOOKUP-formule herken nie die letterkas nie. Daar is egter 'n manier om Excel VLOOKUP hooflettergevoelig te maak, soos gedemonstreer in die onderstaande voorbeeld.

    Gestel jy het Item ID's in kolom A en wil die item se prys en kommentaar trek uit kolomme B en C. Die probleem is dat ID's beide kleinletters en hoofletters insluit. Byvoorbeeld, die waardes in A4 (001Tvci3u) en A5 (001Tvci3U) verskil slegs indie laaste karakter, "u" en "U", onderskeidelik.

    Wanneer jy "001Tvci3 U " opsoek, lewer 'n standaard VLOOKUP-formule $90 uit wat met "001Tvci3 u" geassosieer word " want dit kom voor "001Tvci3 U " in die opsoekskikking. Maar dit is nie wat jy wil hê nie, reg?

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

    Om 'n hooflettergevoelige soektog in Excel uit te voer, kombineer ons die VLOOKUP, CHOOSE en EXACT funksies:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( opsoekwaarde, opsoek_skikking), terugsendingskikking), 2, 0)

    Hierdie generiese formule werk perfek in alle situasies. Jy kan selfs van regs na links opsoek, iets wat 'n gewone VLOOKUP-formule nie kan doen nie. Kudos aan Pouriya vir die voorstel van hierdie eenvoudige en elegante oplossing!

    In ons geval is die werklike formules soos volg.

    Om die prys in F3 te trek:

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

    Om die kommentaar te gaan haal F4:

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

    Let wel. In alle Excel-weergawes behalwe Excel 365 werk dit net as 'n skikkingsformule, so onthou om Ctrl + Shift + Enter te druk om dit korrek te voltooi. In Excel 365, as gevolg van ondersteuning vir dinamiese skikkings, werk dit ook as 'n gewone formule.

    Hoe hierdie formule werk:

    Die kerndeel wat die truuk doen, is die KIES-formule met geneste EXACT:

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

    Hier, die EXACT-funksie vergelyk die waarde in F2 met elke waarde in A2:A7 en gee TRUE terug as hulle presies dieselfde is, insluitend die letterkas,ONWAAR anders:

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

    Vir die indeks_getal -argument van KIES, gebruik ons ​​die skikkingkonstante {1,2}. As gevolg hiervan kombineer die funksie die logiese waardes van bogenoemde skikking en die waardes van C2:C7 in 'n tweedimensionele skikking soos volg:

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

    Die VLOOKUP-funksie neem dit van daar af en soek vir die opsoekwaarde (wat WAAR is) in die 1ste kolom van die 2-dimensionele skikking (verteenwoordig deur die logiese waardes) en gee 'n passing van die 2de kolom terug, wat die prys is waarna ons soek:

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

    Kleinlettersensitiewe XLOOKUP-formule

    Microsoft 365-intekenare kan 'n hooflettersensitiewe soektog in Excel doen met selfs 'n eenvoudiger formule. Soos jy kan raai, praat ek van 'n kragtiger opvolger van VLOOKUP - die XLOOKUP-funksie.

    Omdat XLOOKUP op soek- en terugkeer-skikkings afsonderlik werk, het ons nie die tweedimensionele skikkingstruuk van die vorige nodig nie. voorbeeld. Gebruik eenvoudig EXACT vir die opsoek-skikking -argument:

    XLOOKUP(TRUE, EXACT( opsoekwaarde , opsoek-skikking ), return_skikking , " Nie gevind nie")

    Die laaste argument ("Nie gevind nie") is opsioneel. Dit definieer net watter waarde om terug te gee as geen passing gevind word nie. As jy dit weglaat, sal 'n standaard #N/A-fout teruggestuur word ingeval die formule niks vind nie.

    Vir ons voorbeeldtabel is dit die hooflettersensitiewe XLOOKUP-formules om te gebruik.

    Om die prys in F3 te kry:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")

    Om diekommentaar F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")

    Hoe hierdie formule werk:

    Soos in die vorige voorbeeld gee EXACT terug 'n verskeidenheid WAAR- en ONWAAR-waardes, waar WAAR hooflettersensitiewe passings verteenwoordig. XLOOKUP soek die skikking hierbo vir die TRUE waarde en gee 'n passing terug vanaf die return_array . Neem asseblief kennis, as daar twee of meer presies dieselfde waardes in die opsoekkolom is (insluitend die letterkas), sal die formule die eerste gevind passing terugstuur.

    XLOOKUP beperking : slegs beskikbaar in Excel 365 en Excel 2021.

    SUMPRODUK - hooflettersensitiewe opsoek om ooreenstemmende nommers terug te gee

    Soos jy uit die opskrif verstaan, is SUMPRODUCT nog 'n Excel-funksie wat 'n hooflettersensitiewe opsoek kan doen , maar dit kan slegs numeriese waardes terugstuur. As dit nie jou geval is nie, spring dan na die INDEX MATCH-voorbeeld wat 'n oplossing bied vir alle datatipes.

    Soos jy waarskynlik weet, vermenigvuldig Excel se SUMPRODUCT komponente in die gespesifiseerde skikkings en gee die som van die produkte terug. Aangesien ons 'n hooflettersensitiewe opsoek wil hê, gebruik ons ​​die EXACT-funksie om die eerste skikking te kry:

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

    Ongelukkig kan die SUMPRODUCT-funksie nie tekspassings terugstuur nie, aangesien tekswaardes nie vermenigvuldig kan word nie. In hierdie geval sal jy 'n #WAARDE kry! fout soos in sel F4 in die skermkiekie hieronder:

    Hoe hierdie formule werk:

    Soos in die VLOOKUP-voorbeeld, die PRESIES funksie kontroledie waarde in F2 teenoor al die waardes in A2:A7 en gee WAAR vir hooflettersensitiewe passings, anders ONWAAR:

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

    In die meeste formules evalueer Excel WAAR na 1 en ONWAAR na 0 Dus, wanneer SUMPRODUCT die elemente van die twee skikkings in dieselfde posisies vermenigvuldig, word alle nie-passings (ONWAAR) nulle:

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

    As gevolg hiervan gee die formule 'n getal van kolom B wat ooreenstem met die presiese hoofletter-sensitiewe passing in kolom A.

    SUMPRODUK-beperking : kan slegs numeriese waardes terugstuur.

    INDEX MATCH - hooflettersensitiewe opsoek vir alle datatipes

    Uiteindelik is ons naby aan 'n beperkingvrye hooflettersensitiewe opsoekformule wat in alle Excel-weergawes en op alle datastelle werk.

    Hierdie voorbeeld kom laaste nie net omdat die beste word vir die laaste gestoor, maar ook omdat die kennis wat jy in die vorige voorbeelde opgedoen het jou dalk help om die hooflettersensitiewe MATCH INDEX formule beter te verstaan.

    Die kombinasie van INDEX en MATCH funksies word dikwels gebruik in Ex cel as 'n meer buigsame en veelsydige alternatief vir VLOOKUP. Die volgende artikel doen goeie werk (hopelik :) en verduidelik hoe hierdie twee funksies saamwerk - Gebruik INDEX MATCH in plaas van VLOOKUP.

    Hier sal ek jou net aan die sleutelpunte herinner:

    • Die MATCH-funksie soek na die opsoekwaarde in die gespesifiseerde opsoekskikking en gee sy relatiewe posisie terug.
    • Die relatieweposisie van die opsoekwaarde gaan direk na die ry_getal -argument van die INDEX-funksie wat dit opdrag gee om 'n waarde uit daardie ry terug te gee.

    Vir die formule om tekskas te herken, moet jy net moet nog een funksie by die klassieke INDEX MATCH-kombinasie voeg. Natuurlik het jy weer die EXACT-funksie nodig:

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

    Die werklike formule in F3 is:

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

    In F4 gebruik ons ​​hierdie een:

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

    Onthou asseblief dat dit net werk as 'n skikkingsformule in alle weergawes anders as Excel 365, so maak seker dat u dit invoer deur die Ctrl + Shift + Enter-sleutels saam te druk. As dit korrek gedoen word, sal die formule in krulhakies ingesluit word soos in die skermkiekie hieronder getoon:

    Hoe hierdie formule werk:

    Soos in alle vorige voorbeelde gee EXACT TRUE vir elke waarde in A2:A7 wat presies ooreenstem met die waarde in F2. Aangesien ons TRUE gebruik vir die opsoekwaarde van MATCH, gee dit 'n relatiewe posisie van die presiese hoofletter-sensitiewe passing terug, wat presies is wat INDEX nodig het om 'n passing van B2:B7 terug te gee.

    Gevorderde hooflettersensitiewe opsoekformule

    Die bogenoemde INDEX MATCH-formule lyk perfek, reg? Maar in werklikheid is dit nie. Kom ek wys jou hoekom.

    Gestel 'n sel in die terugkeerkolom wat ooreenstem met die opsoekwaarde is leeg. Wat sal die formule teruggee? Niks nie.En nou, kom ons kyk wat dit eintlik gee:

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

    Oeps, die formule gee 'n nul terug! Miskien is dit nie regtig belangrik wanneer dit uitsluitlik met tekswaardes te make het nie. As jou werkblad egter getalle bevat en sommige van hulle is werklike nulle, is dit 'n probleem.

    In werklikheid tree alle ander opsoekformules wat vroeër bespreek is op dieselfde manier op. Maar nou wil jy 'n onberispelike formule hê, nie waar nie?

    Om die hooflettersensitiewe INDEX MATCH-formule absoluut perfek te maak, draai jy dit in die IF-funksie wat kontroleer of 'n terugkeersel leeg is en niks terugstuur in hierdie geval:

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

    In die formule hierbo:

    • "C" is die terugkeerkolom.
    • "1" is die getal wat 'n relatiewe posisie van die sel wat deur die MATCH-funksie teruggestuur word in 'n regte seladres verander.

    Byvoorbeeld, die opsoekskikking in ons MATCH-funksie is A2:A7, wat beteken dat die relatiewe posisie van sel A2 "1" is, want dit is die eerste sel in die skikking. Maar in werklikheid begin die opsoekskikking in ry 2. Om die verskil te kompenseer, voeg ons 1 by, sodat die INDIREKTE funksie 'n waarde van die regte sel sal terugstuur.

    Die onderstaande skermkiekies demonstreer die verbeterde hooflettersensitiewe INDEX MATCH formule in aksie.

    As die terugkeersel leeg is, lewer die formule niks uit nie ('n leë string):

    As die terugkeersel 'n nul bevat , gee die formule 0:

    As jy verkiesvertoon 'n boodskap wanneer 'n terugkeersel leeg is, vervang 'n leë string ("") in die laaste argument van IF met 'n teks:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")

    Doen hooflettergevoelig VLOOKUP 'n maklike manier

    Die gebruikers van ons Ultimate Suite for Excel het 'n spesiale hulpmiddel wat dit makliker en stresvry maak om in groot en komplekse tabelle op te soek. Die beste ding is dat Merge Two Tables 'n hooflettersensitiewe opsie het, en die onderstaande voorbeeld wys dit in aksie.

    Gestel jy wil Aantal trek. van die Opsoek -tabel na die Hoof -tabel gebaseer op unieke item-ID's:

    Wat jy doen is om die Merge Tables uit te voer towenaar en voer hierdie stappe uit:

    1. Kies die hooftabel waarin nuwe data ingetrek moet word.
    2. Kies die opsoektabel waar om na die nuwe data te soek.
    3. Kies een of meer sleutelkolomme (Item ID in ons geval). En maak seker dat jy die Kase-sensitiewe passing -blokkie merk.

  • Die towenaar sal jou deur die oorblywende drie stappe lei waar jy spesifiseer watter kolomme om op te dateer, watter kolomme om by te voeg en kies 'n paar bykomende opsies indien nodig.
  • 'n Oomblik later sal jy die gewenste resultaat kry :)

    Dit is hoe om in Excel op te soek met inagneming van die teksgeval. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Oefenwerkboek om af te laai

    Hooflettersensitiewe VLOOKUP-voorbeelde (.xlsx-lêer)

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.