Excel

Præcist matchopslag med INDEX og MATCH

Exact Match Lookup With Index

Excel-formel: Præcist matchopslag med INDEX og MATCHGenerisk 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



tæl unikke værdier i pivottabellen
 
{= 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 skal 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 array som et andet argument, vil vi kom tilbage en matrix med SANDE falske værdier som denne:

excel tæller hverdage mellem to datoer

{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 er vi nødt til at 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:

få ugedag fra dato
 
 MATCH (TRUE, EXACT (F4,B3:B102),0)

Det er vigtigt at bemærke, at MATCH altid returnerer først match, 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. Kolonnetallet i dette tilfælde er hårdkodet som 3, da det navngivne interval data inkluderer 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 linket nedenfor

Forfatter Dave Bruns


^