Excel képlet: Pontos keresés az INDEX és a MATCH -

Tartalomjegyzék

Általános képlet

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

Összegzés

Kis- és nagybetűk közötti keresés

Alapértelmezés szerint a VLOOKUP vagy az INDEX + MATCH szabványos keresések nem tesznek különbséget a kis- és nagybetűk között. A VLOOKUP és a MATCH is egyszerűen visszaadja az első mérkőzést, figyelmen kívül hagyva az esetet.

Ha azonban kis- és nagybetűk közötti keresést kell végrehajtania, akkor ezt egy tömbképlettel teheti meg, amely az INDEX, a MATCH és az EXACT függvényt használja.

A példában a következő képletet használjuk

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

Ez a képlet egy tömbképlet, amelyet a Control + Shift + Enter billentyűkombinációval kell megadni.

Magyarázat

Mivel a MATCH önmagában nem különbözteti meg a kis- és nagybetűket, szükségünk van arra, hogy az Excel összehasonlítsa a kis- és nagybetűket. Az EXACT függvény tökéletes funkció ehhez, de az, ahogyan használjuk, kissé szokatlan, mert egy cellát össze kell hasonlítanunk egy cellasorozattal.

Belülről kifelé haladva először:

EXACT(F4,B3:B102)

ahol az F4 tartalmazza a keresési értéket, a B3: B102 pedig a keresési oszlopra utalás (Keresztnevek). Mivel PONTOS tömböt adunk meg második argumentumként, így az IGAZ hamis értékek tömbjét kapjuk vissza:

(HAMIS, HAMIS, HAMIS, HAMIS, HAMIS, IGAZ stb.)

Ennek az az eredménye, hogy összehasonlítottuk a B4 értékét a keresési oszlop minden cellájában. Bárhol látjuk IGAZ, tudjuk, hogy van egy pontos egyezésünk, amely tiszteletben tartja az esetet.

Most meg kell kapnunk a TRUE értékének pozícióját (azaz sorszámát) ebben a tömbben. Ehhez használhatjuk a MATCH-ot, az IGAZ keresését és pontos egyezési módban történő beállítását:

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

Fontos megjegyezni, hogy a MATCH mindig megadja az első mérkőzést, ha vannak duplikátumok, tehát ha véletlenül újabb pontos egyezés van az oszlopban, akkor csak az elsőt találja meg.

Most van egy sorszámunk. Ezután csak az INDEX használatával kell lekérnünk az értéket a jobb sor és oszlop kereszteződésében. Az oszlop száma ebben az esetben van kódolva, mint 3, mivel a megnevezett tartományban adatok magában foglalja az összes oszlopot. A végső képlet:

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

Ezt a képletet tömbképletként kell megadnunk az EXACT által létrehozott tömb miatt.

Ez a képlet lekéri mind a szöveges, mind a numerikus értékeket. Ha csak számokat szeretne lekérni, használhat egy SUMPRODUCT alapú képletet; lásd az alábbi linket

érdekes cikkek...