ВПР по двум значениям в Excel: 3 проверенных способа

Функция ВПР (VLOOKUP) в Microsoft Excel не поддерживает прямой поиск по двум столбцам одновременно — это ограничение стандартной синтаксиса. Если вам нужно найти значение по двум критериям (например, название товара + регион или ФИО + дата), классический =ВПР(искомое_значение; таблица; номер_столбца; 0) вернёт ошибку #Н/Д. Проблема возникает из-за того, что ВПР ищет только по первому столбцу диапазона, игнорируя остальные условия.

Решение требует обходного пути: либо модификации исходных данных (добавление вспомогательного столбца с объединёнными критериями), либо использования альтернативных функций — ИНДЕКС+ПОИСКПОЗ или XLOOKUP (в новых версиях Excel). В этой статье разберём все три метода с примерами, нюансами и типичными ошибками. Начнём с самого надёжного — вспомогательного столбца.

Метод 1: Вспомогательный столбец с объединёнными критериями

Самый универсальный способ — создать дополнительный столбец в исходной таблице, где каждый критерий объединён через разделитель (например, "|" или "_"). Это позволяет свести задачу к классическому ВПР по одному столбцу.

Пример: у вас есть таблица с данными о продажах, где нужно найти цену по названию товара и региону. Добавляем столбец "Ключ" с формулой:

=A2 & "|" & B2

Где A2 — название товара, B2 — регион. Затем применяем ВПР к этому столбцу:

=ВПР(E2 & "|" & F2; $A$2:$D$100; 4; ЛОЖЬ)

Где E2 и F2 — ячейки с искомыми значениями, 4 — номер столбца с результатом (цена).

  • Плюсы: работает во всех версиях Excel, включая 2010 и старше.
  • ⚠️ Минусы: требует изменения исходной таблицы (не всегда допустимо).
  • 🔄 Альтернатива: если нельзя редактировать таблицу, создайте копию на другом листе.
⚠️ Внимание: Разделитель ("|") не должен встречаться в самих данных. Если в названии товара есть символ "|", используйте другой разделитель, например "~~".

1. Добавить вспомогательный столбец в исходную таблицу

2. Объединить два критерия через уникальный разделитель (формулой или вручную)

3. Применить ВПР к новому столбцу, используя тот же разделитель для искомых значений

4. Убедиться, что разделитель не используется в самих данных-->

Метод 2: Формула ИНДЕКС + ПОИСКПОЗ (без изменений таблицы)

Если редактировать исходную таблицу нельзя, используйте комбинацию ИНДЕКС и ПОИСКПОЗ с массивом условий. Этот метод не требует вспомогательных столбцов и работает в Excel 2007 и новее.

Формула для поиска по двум критериям (название в столбце A, регион в столбце B, результат в столбце D):

=ИНДЕКС($D$2:$D$100; ПОИСКПОЗ(1; ($A$2:$A$100=E2) * ($B$2:$B$100=F2); 0))

Где E2 и F2 — искомые значения. Формула должна вводиться как массивная (в старых версиях Excel — нажать Ctrl+Shift+Enter).

Компонент формулыОписание
($A$2:$A$100=E2)Сравнивает каждый элемент столбца A с искомым значением (E2), возвращает массив ИСТИНА/ЛОЖЬ.
($B$2:$B$100=F2)Аналогично для второго критерия (столбец B и F2).
*Перемножает массивы: ИСТИНА*ИСТИНА=1, остальные комбинации дают 0.
ПОИСКПОЗ(1; ...; 0)Находит позицию первой единицы (точного совпадения по двум критериям).
ИНДЕКС($D$2:$D$100; ...)Возвращает значение из столбца D на найденной позиции.

Если совпадений нет, формула вернёт ошибку #Н/Д. Чтобы обработать её, оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ИНДЕКС(...); "Не найдено")
⚠️ Внимание: В Excel 365 и 2019 формулу можно вводить как обычную (без Ctrl+Shift+Enter). В более старых версиях обязателен режим массива.

1. Совпадают ли типы данных (текст vs число) в искомых значениях и таблице.

2. Нет ли скрытых пробелов (используйте =ПЕЧСИМВ(A2) для проверки).

3. Правильно ли заданы абсолютные ссылки ($A$2:$A$100 вместо A2:A100).-->

Метод 3: Функция XLOOKUP (Excel 365 и 2021)

В новых версиях Excel (начиная с Microsoft 365 и Excel 2021) доступна функция XLOOKUP, которая упрощает поиск по нескольким критериям. Она заменяет ВПР и поддерживает поиск по двум и более столбцам без вспомогательных вычислений.

Синтаксис для поиска по двум критериям:

=XLOOKUP(1; ($A$2:$A$100=E2) * ($B$2:$B$100=F2); $D$2:$D$100; "Не найдено")

Преимущества XLOOKUP:

  • 🔍 Не требует создания вспомогательных столбцов.
  • 📌 Автоматически обрабатывает ошибки (четвёртый аргумент — текст при отсутствии совпадения).
  • ⚡ Работает быстрее ИНДЕКС+ПОИСКПОЗ на больших массивах данных.
  • 🔄 Поддерживает поиск слева направо (в отличие от ВПР).

Если у вас Excel 2019 или старше, XLOOKUP недоступен — используйте методы 1 или 2.

Вспомогательный столбец|ИНДЕКС+ПОИСКПОЗ|XLOOKUP|Другой вариант-->

Типичные ошибки и как их исправить

Даже при правильном синтаксисе формулы могут возвращать ошибки. Разберём самые частые:

  1. #Н/Д (нет данных):
    • 🔹 Искомое значение не найдено. Проверьте регистр (Excel чувствителен к "Товар" vs "товар").
    • 🔹 В данных есть скрытые символы (пробелы, неразрывные пробелы, переносы). Используйте =СЖПРОБЕЛЫ(A2) и =ПЕЧСИМВ(A2) для очистки.
  2. #ЗНАЧ! (неверный тип аргумента):
    • 🔹 Формула массива введена без Ctrl+Shift+Enter (в Excel 2016 и старше).
    • 🔹 Диапазоны в формуле имеют разный размер (например, $A$2:$A$100 vs $B$2:$B$99).
  3. #ССЫЛКА!:
    • 🔹 Номер столбца в ВПР превышает количество столбцов в диапазоне.
    • 🔹 Удалены строки или столбцы, на которые ссылается формула.
⚠️ Внимание: Если вы копируете формулу с вспомогательным столбцом на другой лист, убедитесь, что ссылки на диапазоны ($A$2:$D$100) остались абсолютными. В противном случае Excel автоматически сдвинет их относительно новой позиции.
Как проверить данные на скрытые символы?

Используйте комбинацию функций

=ДЛСТР(A2) — покажет реальную длину строки. =ПЕЧСИМВ(A2) — отобразит все символы, включая пробелы (обозначены квадратиками). =ПОДСТАВИТЬ(A2; СИМВОЛ(160); " ") — заменит неразрывные пробелы на обычные.

Сравнение методов: какой выбрать

Выбор метода зависит от версии Excel, возможности редактировать исходную таблицу и объёма данных. Ниже сравнительная таблица:

КритерийВспомогательный столбецИНДЕКС+ПОИСКПОЗXLOOKUP
Поддержка старых версий Excel✅ Да (2010+)✅ Да (2007+)❌ Нет (только 365/2021)
Требует изменений в таблице❌ Да✅ Нет✅ Нет
Скорость работы на больших данных🟡 Средняя🟡 Средняя✅ Высокая
Удобство формулы✅ Просто❌ Сложно (массивы)✅ Просто
Обработка ошибок❌ Ручная (ЕСЛИОШИБКА)❌ Ручная✅ Встроенная

Рекомендации:

  • 📊 Для Excel 2016 и старше оптимален ИНДЕКС+ПОИСКПОЗ — не требует правок таблицы.
  • 💡 Если можно редактировать данные, вспомогательный столбец + ВПР — самый надёжный вариант.
  • 🚀 В Excel 365 используйте XLOOKUP — он быстрее и проще.

Альтернативные подходы: ПРОСМОТРХ и Power Query

Если стандартные методы не подходят, рассмотрите альтернативы:

1. Функция ПРОСМОТРХ (LOOKUP) с массивом

Менее известная функция ПРОСМОТРХ может использоваться для поиска по двум критериям, но требует специфического формата данных. Пример:

=ПРОСМОТРХ(1; 1/($A$2:$A$100=E2)/($B$2:$B$100=F2); $D$2:$D$100)

Эта формула должна вводиться как массив (Ctrl+Shift+Enter). Она менее интуитивна, чем ИНДЕКС+ПОИСКПОЗ, но работает в старых версиях Excel.

2. Power Query (для сложных запросов)

Если данные хранятся в большом массиве и требуется гибкий поиск, используйте Power Query (вкладка Данные → Получить данные):

  1. Загрузите таблицу в Power Query.
  2. Добавьте пользовательский столбец с объединёнными критериями (аналог метода 1).
  3. Используйте Merge Queries для соединения таблиц по ключу.

Это решение подходит для автоматизации отчётов, но избыточно для разовых задач.

3. Сводные таблицы

Если цель — не поиск конкретного значения, а анализ данных по двум критериям, создайте сводную таблицу:

  • 📌 Перетащите оба критерия в область Строки.
  • 📊 Добавьте нужное поле в Значения.
  • 🔍 Используйте фильтры для быстрого поиска.

Пример на практике: поиск цены по товару и складу

Рассмотрим реальную задачу: у нас есть таблица с данными о товарах на складах, и нужно найти цену по названию товара и коду склада.

Название (A)Склад (B)Цена (C)Ключ (D, скрыт)
НоутбукСКЛ0150000Ноутбук|СКЛ01
НоутбукСКЛ0252000Ноутбук|СКЛ02
МониторСКЛ0120000Монитор|СКЛ01

Искомые значения:

  • E2 = "Ноутбук"
  • F2 = "СКЛ02"

Решения:

  1. Вспомогательный столбец + ВПР:
    =ВПР(E2 & "|" & F2; $D$2:$D$4; 3; ЛОЖЬ)
    Примечание: Номер столбца 3 — потому что результат (цена) находится в 3-м столбце диапазона $A$2:$D$4.
  2. ИНДЕКС+ПОИСКПОЗ:
    =ИНДЕКС($C$2:$C$4; ПОИСКПОЗ(1; ($A$2:$A$4=E2) * ($B$2:$B$4=F2); 0))

Результат: 52000 (цена ноутбука на складе СКЛ02).

FAQ: Частые вопросы по ВПР по двум значениям

Можно ли сделать ВПР по трём и более значениям?

Да, принцип тот же: либо создайте вспомогательный столбец с объединением всех критериев через разделитель, либо расширьте формулу ИНДЕКС+ПОИСКПОЗ, добавив дополнительные условия:

=ИНДЕКС($D$2:$D$100; ПОИСКПОЗ(1; ($A$2:$A$100=E2)  ($B$2:$B$100=F2)  ($C$2:$C$100=G2); 0))

Где G2 — третий критерий.

Почему ВПР не находит значение, хотя оно есть в таблице?

Частые причины:

  1. Скрытые символы (пробелы, непечатаемые знаки). Проверьте с помощью =ПЕЧСИМВ(A2).
  2. Разный регистр ("Товар""товар"). Используйте =НАЙТИ(E2;A2) для проверки.
  3. Числа хранятся как текст (или наоборот). Примените =ЗНАЧЕН() или =ТЕКСТ().
Как сделать ВПР по двум значениям в Google Sheets?

В Google Таблицах работают те же методы:

  • 🔹 Вспомогательный столбец + =VLOOKUP.
  • 🔹 =INDEX(MATCH(1; (A2:A100=E2)*(B2:B100=F2); 0)) (вводится как массив).
  • 🔹 =XLOOKUP (доступен в новых версиях).

Отличие: в Google Sheets формулы массива не требуют Ctrl+Shift+Enter.

Можно ли обойтись без вспомогательного столбца в Excel 2010?

Да, используйте ИНДЕКС+ПОИСКПОЗ (метод 2). Альтернатива — функция =ПРОСМОТРХ, но она менее удобна:

=ПРОСМОТРХ(2; 1/((A2:A100=E2)*(B2:B100=F2)); C2:C100)

Вводите как массив (Ctrl+Shift+Enter).

Как ускорить работу формул на больших таблицах?

Советы для оптимизации:

  • 📌 Сузьте диапазоны (вместо $A:$D используйте $A$2:$D$1000).
  • 🔄 Преобразуйте данные в таблицу Excel (Ctrl+T) и используйте структурированные ссылки.
  • ⚡ Отключите автоматический пересчёт формул (Формулы → Параметры вычислений → Вручную) во время редактирования.
  • 💾 Для статических данных замените формулы на значения (Копировать → Специальная вставка → Значения).