Не устану повторять, что многими любимая функция ВПР (VLOOKUP) бесконечно уступает паре функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH). Вот и еще один пример элегантного решения частой задачи - выбрать значение из списка, но не по одному критерию, а по нескольким.
Зачем это нужно? Ну, например, нужно отобразить название по артикулу товара, в случае когда у разных брендов артикулы могут совпадать. Или когда есть категории и подкатегории. Да проще показать на примере!
Предположим, мы делаем автоматическую подготовку фидов для сайта с объявлениями (как в этой статье), и сайт объявлений хочет, чтобы мы передавали ему в фиде тип объявления:
Как нам с помощью формул выбрать подходящее значение? Нет ничего проще! В ячейках F2 и G2 добавим выпадающий список с категорией и подкатегорией. А в ячейке H2 напишем формулу:
=ИНДЕКС(C:C; ПОИСКПОЗ(1;(F2=A:A)*(G2=B:B);0)
=INDEX(C:C; MATCH(1;(F2=A:A)*(G2=B:B);0)
Как это вообще работает!?
Первый аргумент функции ПОИСКПОЗ (MATCH) - это что мы ищем. Мы ищем единицу. Второй аргумент - это массив, где мы ищем. Массив задан выражением (F2=A:A)*(G2=B:B) - это перемножение двух массивов из значений истина/ложь (которые равны 1 и 0). Их перемножение будет равно единице только в той строке, в которой категория и подкатегория равны заданым. Третий аргумент функции ПОИСКПОЗ - 0, означает что мы ищем точное, а не близкое значение. Нам нужна именно единица. Наконец, функция ИНДЕКС(INDEX) выдает из массива значение с указанным индексом (т.е. на той строке, где категория и подкатегория равны заданым).
Попробуйте сами! Вот ссылка на файл гугл-таблиц: https://docs.google.com/spreadsheets/d/19CC8PYTPV62ZIFSpkTXFAo6SCmbFbnm-s4fmQS5_UQE/edit?usp=sharing
И, кстати, при желании можно добавить и третий критерий - точно таким же образом!