
Všeobecný vzorec
=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))
Zhrnutie
Ak chcete nastaviť vzorec INDEX a MATCH, kde je pole poskytované pre INDEX premenné, môžete použiť funkciu CHOOSE. V zobrazenom príklade je vzorec v I5, skopírovaný nadol,:
=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)
S Tabuľkou 1 a Tabuľkou 2, ako je uvedené na snímke obrazovky.
Vysvetlenie
V jadre ide o normálnu funkciu INDEX a MATCH:
=INDEX(array,MATCH(value,range,0))
Ak sa na nájdenie správneho riadku na návrat z poľa použije funkcia MATCH, funkcia INDEX vráti hodnotu v tomto poli.
V tomto prípade však chceme vytvoriť premennú poľa, aby bolo možné rozsah daný INDEXU meniť za chodu. Robíme to pomocou funkcie CHOOSE:
CHOOSE(H5,Table1,Table2)
Funkcia CHOOSE vráti hodnotu zo zoznamu pomocou danej pozície alebo indexu. Hodnota môže byť konštanta, odkaz na bunku, pole alebo rozsah. V príklade je číselný index uvedený v stĺpci H. Keď je číslo indexu 1, použijeme tabuľku1. Keď je index 2, vložíme Table2 do INDEXU:
CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2
Poznámka: rozsahmi poskytnutými pri CHOOSE nemusia byť tabuľky ani pomenované rozsahy.
V I5 je číslo v stĺpci H 1, takže CHOOSE vráti tabuľku 1 a vzorec sa vyrieši takto:
=INDEX(Table1,MATCH("A",Table1(Model),0),2)
Funkcia MATCH vráti pozíciu „A“ v tabuľke 1, čo je 1, a INDEX vráti hodnotu v riadku 1, stĺpci 2 tabuľky 1, čo je 20,00 dolárov
=INDEX(Table1,1,2) // returns $20.00