Excel-formel: Præcist matchopslag med INDEX og MATCH -

Indholdsfortegnelse

Generisk formel

(=INDEX(data,MATCH(TRUE,EXACT(val,lookup_col),0),col_num))

Resumé

Skift mellem store og små bogstaver

Som standard er standardopslag med VLOOKUP eller INDEX + MATCH ikke store og små bogstaver. Både VLOOKUP og MATCH returnerer simpelthen den første kamp og ignorerer sagen.

Men hvis du har brug for at foretage et skift mellem store og små bogstaver, kan du gøre det med en matrixformel, der bruger INDEX, MATCH og funktionen EXAKT.

I eksemplet bruger vi følgende formel

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Denne formel er en matrixformel og skal indtastes med Control + Shift + Enter.

Forklaring

Da MATCH alene ikke er store og små bogstaver, har vi brug for en måde at få Excel til at sammenligne sager. EXACT-funktionen er den perfekte funktion til dette, men den måde, vi bruger den på, er lidt usædvanlig, fordi vi er nødt til at sammenligne en celle med en række celler.

Når vi arbejder indefra og ud, har vi først:

EXACT(F4,B3:B102)

hvor F4 indeholder opslagsværdien, og B3: B102 er en henvisning til opslagskolonnen (Fornavne). Fordi vi giver PRÆCIS en matrix som et andet argument, får vi tilbage en matrix med SANDE falske værdier som denne:

(FALSK, FALSK, FALSK, FALSK, FALSK, SAND osv.)

Dette er resultatet af at sammenligne værdien i B4 hver celle i opslagskolonnen. Uanset hvor vi ser SAND, ved vi, at vi har et nøjagtigt match, der respekterer sagen.

Nu skal vi få positionen (dvs. række nummer) for den SANDE værdi i denne matrix. Til dette kan vi bruge MATCH, på udkig efter SAND og indstille i nøjagtig matchningstilstand:

MATCH(TRUE,EXACT(F4,B3:B102),0)

Det er vigtigt at bemærke, at MATCH altid returnerer den første kamp, ​​hvis der er dubletter, så hvis der tilfældigvis er et andet nøjagtigt match i kolonnen, matcher du kun den første.

Nu har vi et række nummer. Dernæst skal vi bare bruge INDEX til at hente værdien i højre række og kolonneskæringspunkt. Kolonnenummeret i dette tilfælde er hard-coded som 3, da den navngivne område data omfatter alle kolonner. Den endelige formel er:

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Vi er nødt til at indtaste denne formel som en matrixformel på grund af det array, der er oprettet af EXACT.

Denne formel henter både tekst- og numeriske værdier. Hvis du kun vil hente tal, kan du bruge en formel baseret på SUMPRODUCT; se link nedenfor

Interessante artikler...