
Obecný vzorec
=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))
souhrn
Chcete-li nastavit vzorec INDEX a MATCH, kde je pole poskytované pro INDEX proměnné, můžete použít funkci CHOOSE. V zobrazeném příkladu je vzorec v I5, zkopírovaný dolů, následující:
=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)
S tabulkou 1 a tabulkou 2, jak je uvedeno na snímku obrazovky.
Vysvětlení
V jádru se jedná o normální funkci INDEX a MATCH:
=INDEX(array,MATCH(value,range,0))
Kde se funkce MATCH používá k nalezení správného řádku pro návrat z pole a funkce INDEX vrací hodnotu v tomto poli.
V tomto případě však chceme vytvořit proměnnou pole, takže rozsah daný INDEX lze měnit za běhu. Děláme to pomocí funkce CHOOSE:
CHOOSE(H5,Table1,Table2)
Funkce CHOOSE vrací hodnotu ze seznamu pomocí dané pozice nebo indexu. Hodnota může být konstanta, odkaz na buňku, pole nebo rozsah. V příkladu je číselný index uveden ve sloupci H. Když je číslo indexu 1, použijeme Table1. Když je index 2, vložíme Table2 do INDEXU:
CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2
Poznámka: rozsahy poskytované CHOOSE nemusí být tabulkami ani pojmenovanými rozsahy.
V I5 je číslo ve sloupci H 1, takže CHOOSE vrátí Table1 a vzorec se vyřeší na:
=INDEX(Table1,MATCH("A",Table1(Model),0),2)
Funkce MATCH vrací pozici „A“ v tabulce 1, což je 1, a INDEX vrací hodnotu v řádku 1, sloupci 2 tabulky 1, což je 20,00 $
=INDEX(Table1,1,2) // returns $20.00