Если у вас есть функция ПРОСМОТРX / XLOOKUP (Excel 2021, Microsoft 365), то пользуйтесь ею вместо ВПР: она гораздо проще по синтаксису и не имеет этого ограничения (о ней ниже).
Если ее нет (у вас Google Таблицы, Excel 2019 или ранее), то пользуйтесь сочетанием ИНДЕКС + ПОИСКПОЗ.
Функция ПОИСКПОЗ / MATCH определяет порядковый номер значения в диапазоне. Ее синтаксис:
На выходе — число (номер строки или столбца в рамках диапазона, в котором находится искомое значение).
ИНДЕКС / INDEX выполняет другую задачу — возвращает элемент по его номеру:
Соответственно, мы можем определить номер строки, в котором находится искомое значение, с помощью ПОИСКПОЗ. А затем подставить этот номер в ИНДЕКС на место второго аргумента, чтобы получить данные из любого нужного нам столбца.
Получается следующая конструкция:
Функция ИНДЕКС работает и с двумерными массивами. Если аргумент — это диапазон (или таблица), то можно извлекать элемент по номерам строки и столбца.
А эти самые номера мы можем искать с помощью функции ПОИСКПОЗ / MATCH.
В общем виде структура формулы будет такой:
Более подробно:
Давайте рассмотрим пример. Допустим, по двум оценкам поведенческих и профессиональных компетенций нужно выставить комплексную оценку.
То есть если Лемур получает оценку профессиональных компетенций A и поведенческих — C, то его комплексная оценка — B.
Вот так будет выглядеть формула: мы ищем каждую из двух оценок в ее строке (профессиональные) и столбце (поведенческие компетенции) с помощью функций ПОИСКПОЗ, и их позиции выступают в качестве номеров строки и столбца в функции ИНДЕКС.
ПРОСМОТРX / XLOOKUP — новая функция, которой нет в версиях Excel до 2019 включительно, она доступна подписчикам Office 365, получающим обновления, и в Excel 2021.
У нее гораздо более простой синтаксис. Несмотря на большое количество аргументов, обязательными являются всего три:
Не нужно указывать номер столбца, не нужно помнить про интервальный просмотр: в таком варианте ПРОСМОТРX будет искать и возвращать данные из нужных столбцов при их любом порядке.
ПРОСМОТРX по умолчанию ищет точное совпадение, в отличие от ВПР и ПОИСКПОЗ, у которых нужно указывать последний аргумент равным нулю при работе с текстом. Поиск ведется сверху вниз. По умолчанию здесь, в отличие от ВПР, символы подстановки (* и?) не работают.
Если нужны более тонкие настройки, у ПРОСМОТРX есть необязательные аргументы:
[если_ничего_не_найдено](if_not_found) — что возвращать в случае ошибки #Н/Д (когда ничего не найдено);
[режим_сопоставления](match_mode) — по умолчанию 0, то есть точный поиск, так что можно пропускать при работе с текстом, но если нужно использовать символы подстановки, то этот аргумент должен быть равен 2, −1 и 1 для интервального поиска (ближайшего числа);
[режим_поиска](search_mode) — по умолчанию 1, то есть поиск сверху вниз, −1 для поиска снизу вверх; значения -2 и 2 — это двоичный поиск, который был более быстрым до 2018 года, а после потерял актуальность, когда команда Excel обновила алгоритм поиска; кроме того, у него есть недостаток — значения должны быть отсортированы.
«Обычную» функцию ПРОСМОТР / LOOKUP (без X, из старых версий Excel) использовать не рекомендую. Она требует обязательной сортировки таблицы по алфавиту и не имеет режима точного поиска: если у вас будет ошибка в ключе, она все равно выдаст результат (неправильный), а не просигнализирует ошибкой #Н/Д, как ВПР и ПОИСКПОЗ.