Формула Excel: ИНДЕКС с переменным массивом -

Общая формула

=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))

Резюме

Чтобы настроить формулу ИНДЕКС и ПОИСКПОЗ, где массив, предоставленный для ИНДЕКС, является переменным, вы можете использовать функцию ВЫБОР. В показанном примере формула I5, скопированная ниже, выглядит так:

=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)

С Table1 и Table2, как показано на скриншоте.

Объяснение

По сути, это обычные функции ИНДЕКС и ПОИСКПОЗ:

=INDEX(array,MATCH(value,range,0))

Где функция ПОИСКПОЗ используется для поиска правильной строки для возврата из массива, а функция ИНДЕКС возвращает значение в этом массиве.

Однако в этом случае мы хотим создать переменную массива, чтобы диапазон, заданный для INDEX, можно было изменять на лету. Мы делаем это с помощью функции ВЫБРАТЬ:

CHOOSE(H5,Table1,Table2)

Функция ВЫБОР возвращает значение из списка с использованием данной позиции или индекса. Значение может быть константой, ссылкой на ячейку, массивом или диапазоном. В этом примере числовой индекс предоставляется в столбце H. Когда номер индекса равен 1, мы используем Table1. Когда индекс равен 2, мы передаем Table2 в INDEX:

CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2

Примечание: диапазоны, предоставленные для ВЫБРАТЬ, не обязательно должны быть таблицами или именованными диапазонами.

В I5 число в столбце H равно 1, поэтому CHOOSE возвращает Table1, а формула принимает следующий вид:

=INDEX(Table1,MATCH("A",Table1(Model),0),2)

Функция ПОИСКПОЗ возвращает позицию «А» в таблице 1, которая равна 1, а ИНДЕКС возвращает значение в строке 1, столбце 2 таблицы 1, которое составляет 20,00 долларов США.

=INDEX(Table1,1,2) // returns $20.00

Интересные статьи...