Sådan laver du case-sensitive Vlookup i Excel - eksempler på formler

  • Del Dette
Michael Brown

Vejledningen forklarer, hvordan man gør Excel VLOOKUP-funktionen følsom over for store og små bogstaver, demonstrerer et par andre formler, der skelner mellem tekstens store og små bogstaver, og påpeger styrker og begrænsninger ved hver enkelt funktion.

Jeg tror, at alle Excel-brugere ved, hvilken funktion der udfører et vertikalt opslag i Excel. Ja, det er VLOOKUP. Meget få mennesker er dog klar over, at Excel's VLOOKUP ikke tager hensyn til store og små bogstaver, hvilket betyder, at den behandler små og store bogstaver som de samme tegn.

Her er et hurtigt eksempel, der viser VLOOKUP's manglende evne til at skelne mellem tekstens bogstaver. Hvis du har "bill" i celle A2 og "Bill" i A4, vil nedenstående formel fange "bill", fordi det kommer først i opslagsfeltet, og returnere en matchende værdi fra B2.

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

Længere nede i denne artikel vil jeg vise dig en måde at gøre VLOOKUP case-sensitiv. Vi vil også undersøge et par andre funktioner, der kan lave et case-sensitivt match i Excel.

    VLOOKUP-formel, der tager hensyn til store og små bogstaver

    Som nævnt ovenfor genkender en almindelig VLOOKUP-formel ikke bogstaver. Der er dog en måde at gøre Excel VLOOKUP-formlen genkendelig for store og små bogstaver, som vist i nedenstående eksempel.

    Antag, at du har Artikel-id'er i kolonne A og ønsker at hente varens pris og kommentar fra kolonne B og C. Problemet er, at ID'er indeholder både små og store bogstaver. F.eks. adskiller værdierne i A4 (001Tvci3u) og A5 (001Tvci3U) sig kun ved det sidste tegn, henholdsvis "u" og "U".

    Ved opslag af "001Tvci3 U ", en standard VLOOKUP-formel udsender $90, som er forbundet med "001Tvci3 u ", fordi det kommer før "001Tvci3 U " i opslagsarrayet. Men det er ikke det, du ønsker, vel?

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

    For at udføre et case-sensitivt opslag i Excel kombinerer vi funktionerne VLOOKUP, CHOOSE og EXACT:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( opslagsværdi , opslagsbatteri ), return_array ), 2, 0)

    Denne generiske formel fungerer perfekt i alle situationer. Du kan endda slå op fra højre til venstre , noget som en almindelig VLOOKUP-formel ikke kan gøre. Hyldest til Pouriya for at foreslå denne enkle og elegante løsning!

    I vores tilfælde ser de reelle formler således ud.

    For at trække prisen i F3:

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

    For at hente kommentaren F4:

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

    Bemærk: I alle andre Excel-versioner end Excel 365 fungerer dette kun som en array-formel, så husk at trykke på Ctrl + Shift + Enter for at fuldføre den korrekt. I Excel 365 fungerer det også som en almindelig formel, da det understøtter dynamiske arrays.

    Sådan fungerer denne formel:

    Den centrale del, der gør tricket, er CHOOSE-formlen med indlejret EXACT:

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

    Her sammenligner EXACT-funktionen værdien i F2 med hver værdi i A2:A7 og returnerer TRUE, hvis de er nøjagtigt ens, inklusive bogstavsangivelse, og FALSE i modsat fald:

    {FALSK;FALSK;FALSK;FALSK;SAND;FALSK;FALSK;FALSK}

    For den index_num argumentet i CHOOSE bruger vi arraykonstanten {1,2}. Resultatet er, at funktionen kombinerer de logiske værdier fra ovenstående array og værdierne fra C2:C7 i et todimensionelt array som følger:

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

    VLOOKUP-funktionen tager den derfra og søger efter opslagsværdien (som er TRUE) i den første kolonne i det todimensionelle array (repræsenteret af de logiske værdier) og returnerer et match fra den anden kolonne, som er den pris, vi leder efter:

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

    XLOOKUP-formel, der tager hensyn til store og små bogstaver

    Microsoft 365-abonnenter kan lave et case-sensitivt opslag i Excel med en endnu enklere formel. Som du nok kan gætte, taler jeg om en mere kraftfuld efterfølger til VLOOKUP - XLOOKUP-funktionen.

    Fordi XLOOKUP opererer separat på opslags- og returarrays, har vi ikke brug for det todimensionale array-trick fra det foregående eksempel. Du skal blot bruge EXACT til opslagsbatteri argument:

    XLOOKUP(TRUE, EXACT( opslagsværdi , opslagsbatteri ), return_array , "Ikke fundet")

    Det sidste argument ("Not found") er valgfrit. Det definerer blot, hvilken værdi der skal returneres, hvis der ikke findes nogen match. Hvis du udelader det, returneres en standard #N/A-fejl, hvis formlen ikke finder noget.

    For vores eksempeltabel er dette de XLOOKUP-formler, der skal bruges, og som tager hensyn til store og små bogstaver.

    For at få prisen i F3:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Ikke fundet")

    Udtrække kommentaren F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Ikke fundet")

    Sådan fungerer denne formel:

    Ligesom i det foregående eksempel returnerer EXACT et array af værdierne TRUE og FALSE, hvor TRUE repræsenterer stemmelighedsoverensstemmelser med hensyn til store og små bogstaver. XLOOKUP søger i ovenstående array efter værdien TRUE og returnerer et match fra return_array Bemærk, at hvis der er to eller flere nøjagtigt samme værdier i opslagskolonnen (inklusive bogstavsangivelser), returnerer formlen den første match, der er fundet.

    XLOOKUP-begrænsning : kun tilgængelig i Excel 365 og Excel 2021.

    SUMPRODUCT - opslag, der tager hensyn til store og små bogstaver for at få matchende tal tilbage

    Som du forstår af overskriften, er SUMPRODUCT endnu en Excel-funktion, der kan foretage et case-sensitivt opslag, men den kan returnere numeriske værdier Hvis dette ikke er tilfældet, skal du gå videre til INDEX MATCH-eksemplet, som giver en løsning for alle datatyper.

    Som du sikkert ved, multiplicerer Excel's SUMPRODUCT komponenter i de angivne arrays og returnerer summen af produkterne. Da vi ønsker et opslag, der tager højde for store og små bogstaver, bruger vi EXACT-funktionen til at få fat i det første array:

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

    Desværre kan SUMPRODUCT-funktionen ikke returnere tekstoverensstemmelser, da tekstværdier ikke kan multipliceres. I dette tilfælde får du en #VALUE!-fejl som i celle F4 i skærmbilledet nedenfor:

    Sådan fungerer denne formel:

    Ligesom i VLOOKUP-eksemplet kontrollerer EXACT-funktionen værdien i F2 i forhold til alle værdierne i A2:A7 og returnerer TRUE for case-sensitive matches og FALSE i modsat fald:

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

    I de fleste formler evaluerer Excel TRUE til 1 og FALSE til 0. Så når SUMPRODUCT multiplicerer elementerne i de to arrays i de samme positioner, bliver alle ikke-sammenfald (FALSE) til nuller:

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

    Resultatet er, at formlen returnerer et tal fra kolonne B, der svarer til det nøjagtige stemmematch i kolonne A, som er følsom over for store og små bogstaver.

    SUMPRODUKT begrænsning : kan kun returnere numeriske værdier.

    INDEX MATCH - opslag med hensyn til alle datatyper, der tager hensyn til store og små bogstaver

    Endelig er vi tæt på at få en formel til opslagsformel med hensyn til store og små bogstaver, som fungerer i alle Excel-versioner og på alle datasæt.

    Dette eksempel kommer til sidst, ikke kun fordi det bedste er gemt til sidst, men også fordi den viden, du har fået i de foregående eksempler, kan hjælpe dig med at forstå formlen MATCH INDEX med hensyn til store og små bogstaver bedre.

    Kombinationen af INDEX- og MATCH-funktionerne bruges ofte i Excel som et mere fleksibelt og alsidigt alternativ til VLOOKUP. Følgende artikel forklarer (forhåbentlig :) godt, hvordan disse to funktioner fungerer sammen - Brug af INDEX MATCH i stedet for VLOOKUP.

    Her vil jeg blot minde dig om de vigtigste punkter:

    • Funktionen MATCH søger efter opslagsværdien i det angivne opslagsarray og returnerer dens relative position.
    • Den relative position for opslagsværdien går direkte til row_num argumentet i INDEX-funktionen, der giver den besked om at returnere en værdi fra den pågældende række.

    For at formlen skal kunne genkende tekstcases, skal du blot tilføje endnu en funktion til den klassiske INDEX MATCH-kombination. Du har naturligvis brug for EXACT-funktionen igen:

    INDEX( return_array , MATCH(TRUE, EXACT( opslagsværdi , opslagsbatteri ), 0))

    Den rigtige formel i F3 er:

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

    I F4 bruger vi denne:

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

    Husk, at det kun fungerer som en array-formel i alle andre versioner end Excel 365, så sørg for at indtaste den ved at trykke på tasterne Ctrl + Shift + Enter sammen. Hvis det gøres korrekt, vil formlen blive omsluttet af parenteser, som vist på skærmbilledet nedenfor:

    Sådan fungerer denne formel:

    Ligesom i alle de foregående eksempler returnerer EXACT TRUE for hver værdi i A2:A7, der svarer nøjagtigt til værdien i F2. Da vi bruger TRUE til opslagsværdi af MATCH, returnerer den en relativ position for det nøjagtige match med hensyn til hhv. store og små bogstaver, hvilket er præcis, hvad INDEX har brug for for at returnere et match fra B2:B7.

    Avanceret formel til opslag med hensyn til store og små bogstaver

    Ovennævnte INDEX MATCH-formel ser perfekt ud, ikke? Men det er den faktisk ikke. Lad mig vise dig hvorfor.

    Lad os antage, at en celle i returkolonnen, der svarer til opslagsværdien, er tom. Hvad skal formlen returnere? Intet. Og lad os nu se, hvad den faktisk returnerer:

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

    Ups, formlen returnerer et nul! Det er måske ikke så vigtigt, når der udelukkende er tale om tekstværdier, men hvis dit regneark indeholder tal, og nogle af dem er rigtige nuller, er det et problem.

    I virkeligheden opfører alle andre opslagsformler, som vi har diskuteret tidligere, sig på samme måde. Men nu vil du have en upåklagelig formel, ikke sandt?

    For at gøre formlen INDEX MATCH, der tager hensyn til store og små bogstaver, helt perfekt, pakker du den ind i IF-funktionen, der kontrollerer, om en returcelle er tom, og som i så fald ikke returnerer noget:

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

    I ovenstående formel:

    • "C" er returkolonnen.
    • "1" er det tal, der gør en relativ position af den celle, der returneres af MATCH-funktionen, til en reel celleadresse .

    F.eks. er opslagsarrayet i vores MATCH-funktion A2:A7, hvilket betyder, at den relative position for celle A2 er "1", fordi det er den første celle i arrayet. Men i virkeligheden begynder opslagsarrayet i række 2. For at kompensere for forskellen tilføjer vi 1, så INDIRECT-funktionen returnerer en værdi fra den rigtige celle.

    Nedenstående skærmbilleder viser den forbedrede INDEX MATCH-formel, der tager hensyn til store og små bogstaver, i praksis.

    Hvis returcellen er tom, udsender formlen intet (en tom streng):

    Hvis returcellen indeholder et nul, returnerer formlen 0:

    Hvis du hellere vil vise en meddelelse, når en returcelle er tom, kan du erstatte en tom streng ("") i det sidste argument i IF med en tekst:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0))))""", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Der er intet at returnere, beklager.")

    Gør case-sensitive VLOOKUP på en nem måde

    Brugerne af vores Ultimate Suite for Excel har et særligt værktøj, der gør det nemmere og stressfrit at slå op i store og komplekse tabeller. Det bedste er, at Merge Two Tables har en mulighed for at skelne mellem store og små bogstaver, og nedenstående eksempel viser det i aktion.

    Lad os antage, at du vil trække Qty. fra Søg på tabel til den Vigtigste tabellen baseret på unikke vare-id'er:

    Du skal køre guiden Flette tabeller og udføre disse trin:

    1. Vælg den hovedtabel, som de nye data skal trækkes ind i.
    2. Vælg den opslagstabel, hvor du skal søge efter de nye data.
    3. Vælg en eller flere nøglekolonner (i vores tilfælde varenummer). Og sørg for at kontrollere Sammenligning efter store og små bogstaver boks.

  • Guiden vil føre dig gennem de resterende tre trin, hvor du angiver, hvilke kolonner der skal opdateres, hvilke kolonner der skal tilføjes, og om nødvendigt vælger nogle yderligere indstillinger.
  • Et øjeblik efter får du det ønskede resultat :)

    Det er sådan, hvordan du søger i Excel under hensyntagen til tekstcase. Jeg takker for læsningen og håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    VLOOKUP-eksempler, der tager hensyn til store og små bogstaver (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.