Excel képlet: Több oszlop indexelése és egyeztetése -

Általános képlet

(=INDEX(rng1,MATCH(1,MMULT(--(rng2=critera),TRANSPOSE(COLUMN(rng2)^0)),0)))

Összegzés

Értékek megkereséséhez több oszlopba illesztéssel használhatja az MMULT, TRANSPOSE, COLUMN és INDEX alapú tömbképletet. A bemutatott példában a H4 képlete a következő:

(=INDEX(groups,MATCH(1,MMULT(--(names=G4),TRANSPOSE(COLUMN(names)^0)),0)))

ahol a "nevek" a C4: E7 elnevezett tartomány, a "csoportok" pedig a B4: B7 nevű tartomány. A képlet visszaadja azt a csoportot, amelyhez minden név tartozik.

Megjegyzés: ez egy tömbképlet, amelyet a vezérlő eltolásával kell megadni.

Magyarázat

Belülről kifelé haladva a képletben használt logikai kritériumok a következők:

--(names=G4)

ahol a nevek a megnevezett tartomány C4: E7. Ez IGAZ / HAMIS eredményt generál az adatok minden értékéhez, és a kettős negatív az IGAZ HAMIS értékeket 1-re és 0-ra kényszeríti, így kap egy ilyen tömböt:

(0,0,0;1,0,0;0,0,0;0,0,0)

Ez a tömb 4 sorral, 3 oszloppal rendelkezik, és megfelel a "nevek" szerkezetének.

Egy második tömb jön létre ezzel a kifejezéssel:

TRANSPOSE(COLUMN(names)^0))

Az OSZLOP funkció segítségével 3 oszlopos és 1 soros numerikus tömb jön létre, és a TRANSPOSE ezt a tömböt 1 oszlopra és 3 sorra konvertálja. A nulla hatványára való emelés egyszerűen átalakítja a tömb összes számát 1-re. Az MMULT függvénnyel ezután mátrixszorzást hajtanak végre:

MMULT((0,0,0;1,0,0;0,0,0;0,0,0),(1;1;1))

és az így kapott tömbként a MATCH függvénybe kerül, 1-vel a keresési érték:

MATCH(1,(0;1;0;0),0)

A MATCH függvény visszaadja az első mérkőzés helyzetét, amely megfelel az első egyező sornak, amely megfelel a megadott feltételeknek. Ez az INDEX-be kerül sorszámként, tömbként a megnevezett tartomány "csoportok":

=INDEX(groups,2)

Végül az INDEX visszatér a "Medve" szóhoz, amelyhez Adam csoport tartozik.

A literál tartalmazza a kritériumokat

A pontos egyezés helyett konkrét szöveges értékek ellenőrzéséhez használhatja az ISNUMBER és a SEARCH függvényeket együtt. Például az "almát" tartalmazó cellák megfeleltetéséhez használhatja:

=ISNUMBER(SEARCH("apple",data))

Ezt a képletet itt magyarázzuk el.

Jó linkek

Stackoverflow válasz: XOR LX

érdekes cikkek...