
Обща формула
=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))
Обобщение
За да настроите формула INDEX и MATCH, където масивът, предоставен на INDEX, е променлив, можете да използвате функцията CHOOSE. В показания пример формулата в I5, копирана надолу, е:
=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)
С Table1 и Table2, както е посочено на екранната снимка.
Обяснение
В основата си това е нормална функция INDEX и MATCH:
=INDEX(array,MATCH(value,range,0))
Когато функцията MATCH се използва за намиране на правилния ред, който да се върне от масива, а функцията INDEX връща стойността в този масив.
В този случай обаче искаме да направим променливата на масива, така че диапазонът, даден на INDEX, да може да се променя в движение. Правим това с функцията CHOOSE:
CHOOSE(H5,Table1,Table2)
Функцията CHOOSE връща стойност от списък, използвайки дадена позиция или индекс. Стойността може да бъде константа, препратка към клетка, масив или диапазон. В примера числовият индекс е предоставен в колона H. Когато номерът на индекса е 1, използваме Таблица1. Когато индексът е 2, ние подаваме Таблица2 към INDEX:
CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2
Забележка: диапазоните, предоставени на CHOOSE, не е необходимо да бъдат таблици или имена.
В I5 числото в колона H е 1, така че CHOOSE връща Таблица1 и формулата се решава до:
=INDEX(Table1,MATCH("A",Table1(Model),0),2)
Функцията MATCH връща позицията "A" в Таблица1, която е 1, а INDEX връща стойността в ред 1, колона 2 на Таблица1, която е $ 20,00
=INDEX(Table1,1,2) // returns $20.00