Vzorec aplikace Excel: Indexování a shoda ve více sloupcích -

Obecný vzorec

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

souhrn

Chcete-li vyhledat hodnotu porovnáním mezi více sloupci, můžete použít maticový vzorec založený na MMULT, TRANSPOSE, COLUMN a INDEX. V zobrazeném příkladu je vzorec v H4:

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

kde „names“ je pojmenovaný rozsah C4: E7 a „groups“ je pojmenovaný rozsah B4: B7. Vzorec vrátí skupinu, do které každé jméno patří.

Poznámka: Toto je maticový vzorec a musí být zadán pomocí Enter Control Shift.

Vysvětlení

Při práci zevnitř ven je logickým kritériem použitým v tomto vzorci:

--(names=G4)

kde names je pojmenovaný rozsah C4: E7. To generuje výsledek TRUE / FALSE pro každou hodnotu v datech a dvojitý zápor vynutí hodnoty TRUE FALSE na 1 a 0 a získá tak pole:

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

Toto pole má 4 řádky a 3 sloupce, což odpovídá struktuře „jmen“.

S tímto výrazem se vytvoří druhé pole:

TRANSPOSE(COLUMN(names)^0))

Funkce COLUMN se používá k vytvoření číselného pole se 3 sloupci a 1 řádkem a funkce TRANSPOSE toto pole převede na 1 sloupec a 3 řádky. Zvyšování na sílu nula jednoduše převede všechna čísla v poli na 1. Funkce MMULT se poté použije k násobení matic:

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

a výsledný jde do funkce MATCH jako pole, s 1 jako vyhledávací hodnotou:

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

Funkce MATCH vrací pozici první shody, která odpovídá řádku první vyhovující kritéria splňující zadaný řádek. Toto je zdroj do INDEXU jako číslo řádku s pojmenovaným rozsahem „groups“ jako pole:

=INDEX(groups,2)

Nakonec INDEX vrátí „Bear“, do které patří Adam.

Doslovný obsahuje pro kritéria

Chcete-li namísto přesné shody zkontrolovat konkrétní textové hodnoty, můžete použít funkce ISNUMBER a SEARCH společně. Chcete-li například porovnat buňky obsahující slovo „jablko“, můžete použít:

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

Tento vzorec je vysvětlen zde.

Dobré odkazy

Odpověď na Stackoverflow od XOR LX

Zajímavé články...