Hur man gör Vlookup med hänsyn till storleken på bokstäverna i Excel - exempel på formler

  • Dela Detta
Michael Brown

I handledningen förklaras hur du gör Excel VLOOKUP känslig för stor- och småbokstäver, du visar några andra formler som skiljer mellan stor- och småbokstäver i text och du pekar på styrkor och begränsningar för varje funktion.

Jag antar att alla Excel-användare vet vilken funktion som utför en vertikal sökning i Excel. Just det, det är VLOOKUP. Mycket få är dock medvetna om att Excels VLOOKUP är skiftlägesoberoende, vilket innebär att den behandlar små bokstäver och versaler som samma tecken.

Här är ett snabbt exempel som visar VLOOKUP:s oförmåga att skilja mellan olika textbokstäver. Anta att du har "bill" i cell A2 och "Bill" i A4. Formeln nedan fångar upp "bill" eftersom det kommer först i uppslagsraden och returnerar ett matchande värde från B2.

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

Längre fram i den här artikeln kommer jag att visa hur du kan göra VLOOKUP känslig för stora och små bokstäver. Vi kommer också att utforska några andra funktioner som kan göra en matchning med hänsyn till stora och små bokstäver i Excel.

    VLOOKUP-formel som tar hänsyn till stora bokstäver

    Som nämnts ovan känner en vanlig VLOOKUP-formel inte igen bokstavsbokstäverna. Det finns dock ett sätt att göra Excel VLOOKUP känslig för stor bokstavsbokstäver, vilket visas i exemplet nedan.

    Anta att du har Artikel-ID:n i kolumn A och vill hämta artikelns pris och kommentar från kolumnerna B och C. Problemet är att ID:n innehåller både små och stora bokstäver. Värdena i A4 (001Tvci3u) och A5 (001Tvci3U) skiljer sig till exempel bara åt genom det sista tecknet, "u" respektive "U".

    När man söker efter "001Tvci3 U ", ger en standard VLOOKUP-formel 90 dollar som är associerade med "001Tvci3". u " eftersom den kommer före "001Tvci3". U "Men det är inte vad du vill ha, eller hur?

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

    För att utföra en skiftlägeskänslig sökning i Excel kombinerar vi funktionerna VLOOKUP, CHOOSE och EXACT:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( Lookup_value , Lookup_array ), return_array ), 2, 0)

    Denna generiska formel fungerar perfekt i alla situationer. Du kan till och med slå upp från höger till vänster något som en vanlig VLOOKUP-formel inte kan göra. Heder åt Pouriya för att ha föreslagit denna enkla och eleganta lösning!

    I vårt fall är de verkliga formlerna följande.

    För att få fram priset i F3:

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

    För att hämta kommentaren F4:

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

    Observera: I alla Excel-versioner utom Excel 365 fungerar det här bara som en matrisformel, så kom ihåg att trycka på Ctrl + Shift + Enter för att slutföra formeln korrekt. I Excel 365 fungerar det också som en vanlig formel tack vare stöd för dynamiska matriser.

    Hur denna formel fungerar:

    Den centrala delen som gör susen är formeln CHOOSE med inbäddade EXACT:

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

    Här jämför EXACT-funktionen värdet i F2 med varje värde i A2:A7 och returnerar TRUE om de är exakt likadana, inklusive bokstavsbeteckningen, och FALSE annars:

    {FALSK;FALSKT;FALSKT;FALSKT;SANT;FALSKT;FALSKT;FALSKT}

    För index_nummer argumentet i CHOOSE använder vi arraykonstanten {1,2}. Som ett resultat kombinerar funktionen de logiska värdena från arrayen ovan och värdena från C2:C7 till en tvådimensionell array på följande sätt:

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

    VLOOKUP-funktionen tar det därifrån och söker efter uppslagsvärdet (som är TRUE) i den första kolumnen i den tvådimensionella matrisen (representerad av de logiska värdena) och returnerar en matchning från den andra kolumnen, vilket är det pris som vi letar efter:

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

    XLOOKUP-formel som är känslig för stora bokstäver

    Microsoft 365-prenumeranter kan göra en skiftlägeskänslig sökning i Excel med en ännu enklare formel. Som du kan gissa talar jag om en mer kraftfull efterföljare till VLOOKUP - funktionen XLOOKUP.

    Eftersom XLOOKUP arbetar separat med uppslags- och returmatriser behöver vi inte använda det tvådimensionella matris-tricket från det föregående exemplet. Använd helt enkelt EXACT för Lookup_array argument:

    XLOOKUP(TRUE, EXACT( Lookup_value , Lookup_array ), return_array , "Ej funnen")

    Det sista argumentet ("Not found") är valfritt. Det definierar bara vilket värde som ska returneras om ingen träff hittas. Om du utelämnar det kommer ett standardfel #N/A att returneras om formeln inte hittar något.

    För vår exempeltabell är detta de XLOOKUP-formler som är känsliga för stora och små bokstäver som ska användas.

    För att få fram priset i F3:

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

    För att ta ut kommentaren F4:

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

    Hur denna formel fungerar:

    Precis som i det föregående exemplet returnerar EXACT en matris med TRUE- och FALSE-värden, där TRUE representerar matchningar som är känsliga för stora och små bokstäver. XLOOKUP söker i matrisen ovan efter TRUE-värdet och returnerar en matchning från return_array Observera att om det finns två eller flera exakt samma värden i uppslagskolumnen (inklusive bokstavsbokstäver) kommer formeln att ge den första matchningen som hittas.

    Begränsning av XLOOKUP : endast tillgänglig i Excel 365 och Excel 2021.

    SUMPRODUCT - skiftlägeskänslig sökning för att återge matchande nummer.

    Som du förstår av rubriken är SUMPRODUCT ännu en Excel-funktion som kan göra en skiftlägeskänslig sökning, men den kan returnera numeriska värden Om detta inte är fallet kan du gå vidare till exemplet INDEX MATCH som ger en lösning för alla datatyper.

    Som du säkert vet multiplicerar Excels SUMPRODUCT komponenter i de angivna matriserna och returnerar summan av produkterna. Eftersom vi vill ha en skiftlägeskänslig sökning använder vi EXACT-funktionen för att få fram den första matrisen:

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

    Tyvärr kan funktionen SUMPRODUCT inte ge tillbaka textmatchningar eftersom textvärden inte kan multipliceras. I det här fallet får du felmeddelandet #VALUE! som i cell F4 i skärmdumpen nedan:

    Hur denna formel fungerar:

    Precis som i VLOOKUP-exemplet kontrollerar EXACT-funktionen värdet i F2 mot alla värden i A2:A7 och returnerar TRUE om det finns en matchning som är känslig för stor bokstav, och FALSE i annat fall:

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

    I de flesta formler värderar Excel TRUE till 1 och FALSE till 0. När SUMPRODUCT multiplicerar elementen i de två matriserna i samma positioner blir alla icke-matchningar (FALSE) nollor:

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

    Resultatet är att formeln returnerar ett nummer från kolumn B som motsvarar den exakta matchningen med stor bokstavskänsla i kolumn A.

    Begränsning av SUMPRODUCT : kan endast återge numeriska värden.

    INDEX MATCH - skiftlägeskänslig sökning för alla datatyper

    Äntligen är vi nära att få fram en formel för uppslagsformel som är fri från begränsningar och som är känslig för stora och små bokstäver och som fungerar i alla Excel-versioner och på alla datamängder.

    Det här exemplet kommer sist, inte bara för att det bästa sparas till sist, utan också för att den kunskap du fått i de tidigare exemplen kan hjälpa dig att bättre förstå formeln MATCH INDEX som är känslig för stora och små bokstäver.

    Kombinationen av funktionerna INDEX och MATCH används ofta i Excel som ett mer flexibelt och mångsidigt alternativ till VLOOKUP. Följande artikel förklarar på ett bra sätt (förhoppningsvis :) hur dessa två funktioner fungerar tillsammans - Using INDEX MATCH instead of VLOOKUP.

    Här ska jag bara påminna om de viktigaste punkterna:

    • Funktionen MATCH söker efter uppslagsvärdet i den angivna uppslagsmatrisen och returnerar dess relativa position.
    • Den relativa positionen för uppslagsvärdet går direkt till row_num argumentet i INDEX-funktionen för att instruera den att returnera ett värde från den raden.

    För att formeln ska kunna känna igen textbokstäver behöver du bara lägga till ytterligare en funktion till den klassiska kombinationen INDEX MATCH. Självklart behöver du funktionen EXACT igen:

    INDEX( return_array , MATCH(TRUE, EXACT( Lookup_value , Lookup_array ), 0))

    Den verkliga formeln i F3 är:

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

    I F4 använder vi den här:

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

    Kom ihåg att det bara fungerar som en arrayformel i alla versioner utom Excel 365, så se till att du skriver in den genom att trycka på tangenterna Ctrl + Shift + Enter samtidigt. Om du gör det på rätt sätt kommer formeln att omslutas av parenteser, som i skärmbilden nedan:

    Hur denna formel fungerar:

    Precis som i alla tidigare exempel returnerar EXACT TRUE för varje värde i A2:A7 som exakt matchar värdet i F2. Eftersom vi använder TRUE för Lookup_value av MATCH returnerar den en relativ position för den exakta matchningen som är skiftlägeskänslig, vilket är precis vad INDEX behöver för att returnera en matchning från B2:B7.

    Avancerad formel för uppslagsord som tar hänsyn till storleken på storleken på bokstäverna

    Ovanstående INDEX MATCH-formel ser perfekt ut, men det är den faktiskt inte. Låt mig visa dig varför.

    Anta att en cell i returkolumnen som motsvarar uppslagsvärdet är tom. Vad ska formeln ge tillbaka? Ingenting. Och nu ska vi se vad den faktiskt ger tillbaka:

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

    Oj, formeln returnerar en nolla! Det kanske inte är så viktigt när du bara har att göra med textvärden, men om ditt kalkylblad innehåller siffror och vissa av dem är riktiga nollor är det här ett problem.

    I själva verket beter sig alla andra uppslagsformler som diskuterats tidigare på samma sätt. Men nu vill du ha en oklanderlig formel, eller hur?

    För att göra formeln INDEX MATCH som är känslig för stor bokstavskänsla helt perfekt, omsluter du den med funktionen IF som kontrollerar om en returcell är tom och som i så fall inte returnerar något:

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

    I formeln ovan:

    • "C" är returkolumnen.
    • "1" är det tal som gör att en Relativ position. av cellen som returneras av MATCH-funktionen till en verklig celladress .

    Till exempel är uppslagsarrayn i vår MATCH-funktion A2:A7, vilket innebär att den relativa positionen för cell A2 är "1", eftersom det är den första cellen i arrayen. Men i verkligheten börjar uppslagsarrayn på rad 2. För att kompensera skillnaden lägger vi till 1, så att INDIRECT-funktionen returnerar ett värde från den rätta cellen.

    Om returcellen är tom, ger formeln ingenting (en tom sträng):

    Om returcellen innehåller en nolla returnerar formeln 0:

    Om du hellre vill visa ett meddelande när en returcell är tom kan du ersätta en tom sträng ("") i det sista argumentet i IF med en text:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0))))""", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Det finns inget att returnera, tyvärr.")

    Gör skiftlägeskänslig VLOOKUP på ett enkelt sätt

    Anta att du vill hämta Qty. från Sök på till bordet till den Huvudsidan tabellen baserat på unika artikel-ID:n:

    Det du gör är att köra guiden Slå ihop tabeller och utföra följande steg:

    1. Välj den huvudtabell i vilken nya uppgifter ska hämtas.
    2. Välj den uppslagstabell där du ska leta efter de nya uppgifterna.
    3. Välj en eller flera nyckelkolumner (artikel-ID i vårt fall) och se till att du kontrollerar kryssrutan Skiftlägeskänslig matchning box.

  • Guiden följer dig genom de återstående tre stegen där du anger vilka kolumner som ska uppdateras, vilka kolumner som ska läggas till och vid behov väljer några ytterligare alternativ.
  • En stund senare får du det önskade resultatet :)

    Så här gör du i Excel när du tar hänsyn till textfältet. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Arbetsbok för övning för nedladdning

    Exempel på VLOOKUP som tar hänsyn till stora bokstäver (.xlsx-fil)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.