Функции и формулы
ВПР по нескольким условиям: ключ-склейка, массив логических значений и ФИЛЬТР
ВПР по нескольким условиям — это поиск строки по сочетанию полей для тех, у кого одно поле не уникально: товар лежит на трёх складах, менеджер встречается в каждом месяце. Справка Google прямо говорит, что задать больше одного критерия напрямую нельзя, и предлагает вспомогательный столбец со склейкой через &[1]. Ниже — четыре способа на одной таблице продаж, выбор по версии Excel и разбор ошибок.
Обычная подстановка видит только одно искомое значение и отдаёт первую подходящую строку. По справке Microsoft искомое значение должно находиться в первом столбце диапазона[2], поэтому пару «менеджер + месяц» функция без подготовки не распознает.
Путь решения одинаков для всех вариантов ВПР по нескольким условиям: найти поля, которые вместе дают уникальный ключ, ввести формулу со склейкой или произведением условий, проверить результат на сочетании, которого нет в таблице, исправить ошибку и протянуть формулу на свои данные. Выбор способа зависит от версии Excel у тех, кто откроет файл.
Ключевые факты: ВПР по нескольким условиям
- Составной ключ превращает ВПР по нескольким условиям в обычный поиск: два и более поля склеиваются в одно значение.
- Логические значения в формуле массива считаются числами: ИСТИНА*1=1, а ЛОЖЬ*1=0[3].
- Функции И и ИЛИ нельзя использовать в формулах массива непосредственно — их заменяют умножением и сложением[3].
- Справка Google называет вспомогательный столбец со склейкой через & обходным путём для нескольких критериев[1].
- ФИЛЬТР в отличие от ВПР возвращает все строки, подходящие под условия, а не первую[5].
Что такое составной ключ и почему одного условия мало
Составной ключ — это сочетание двух и более полей, которое однозначно указывает на строку: менеджер и месяц, товар и склад, город и вес посылки. В журнале продаж ниже у Петровой две строки, и только месяц отличает одну от другой.
| A | B | C | |
|---|---|---|---|
| 1 | Менеджер | Месяц | Сумма |
| 2 | Иванов | Январь | 120 |
| 3 | Петрова | Январь | 98 |
| 4 | Иванов | Февраль | 135 |
| 5 | Петрова | Февраль | 110 |
| 6 | Сидоров | Январь | 143 |
| 7 | Иванов | Март | 150 |
Формула =ВПР(F2;A2:C7;3;0) при «Петрова» в F2 вернёт 98 — январскую сумму, первую строку Петровой. Второе условие она не видит: по справке Google функция возвращает значение первого найденного совпадения[1]. Ошибки при этом нет, и в отчёт уходит чужая цифра. ВПР по нескольким условиям без подготовки данных не работает — нужен один из четырёх способов из таблицы.
| Способ | Где работает | Что возвращает |
|---|---|---|
| ВПР и вспомогательный столбец | ВПР в любой поддерживаемой версии, в Google Таблицах — тот же приём[1] | одно значение |
| ИНДЕКС и ПОИСКПОЗ с произведением условий | Microsoft 365 — по Enter, старые версии — Ctrl+Shift+Enter[3] | одно значение |
| ПРОСМОТРX с произведением или склейкой | нет в Excel 2016 и Excel 2019[4] | значение или текст при промахе |
| ФИЛЬТР с условиями | Microsoft 365, Excel 2024, Excel 2021[5] | все подходящие строки |
Теперь к первому способу — ключу во вспомогательном столбце, который поймёт и старая версия Excel.
Вспомогательный столбец по шагам: ВПР по нескольким условиям в любой версии
ВПР по нескольким условиям через вспомогательный столбец обходится без новых функций: условия склеиваются в один ключ, и функция ищет его как обычное значение. Справка Google описывает именно такой обходной путь[1].
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ключ | Менеджер | Месяц | Сумма |
| 2 | Иванов_Январь | Иванов | Январь | 120 |
| 3 | Петрова_Январь | Петрова | Январь | 98 |
| 4 | Иванов_Февраль | Иванов | Февраль | 135 |
| 5 | Петрова_Февраль | Петрова | Февраль | 110 |
| 6 | Сидоров_Январь | Сидоров | Январь | 143 |
| 7 | Иванов_Март | Иванов | Март | 150 |
- Вставьте пустой столбец A перед таблицей — данные сдвинутся в B:D.
- В A2 введите
=B2&"_"&C2и протяните до A7. - Запишите менеджера в G2, а месяц — в H2.
- В I2 наберите
=ВПР(G2&"_"&H2;$A$2:$D$7;4;0)и нажмите Enter — формула вернёт 110. - Проверьте пару, которой нет в таблице, например «Сидоров» и «Март»: исправная формула покажет #Н/Д.
Столбец-ключ обязан стоять левее ответа, потому что ВПР ищет только в первом столбце диапазона[2]. Для трёх условий ключ собирают так же: =B2&"_"&C2&"_"&E2.
Разделитель нужен не для красоты. Без него пары «Иван» + «ова» и «Ивано» + «ва» склеятся в одинаковое «Иванова», и формула найдёт чужую строку. Подойдёт любой символ, которого нет в данных. Искомое значение и ключ должны собираться одинаково: запись =ВПР(G2&H2;$A$2:$D$7;4;0) вернёт #Н/Д, потому что ищет «ПетроваФевраль», а в столбце лежит «Петрова_Февраль».
Если сочетание встречается дважды, ВПР вернёт первую строку без предупреждения[1]. Повторы ловит формула =СЧЁТЕСЛИ($A$2:$A$7;A2) рядом с ключом: всё, что больше единицы, нужно разобрать. Соберите ключ-склейку в тренажёре: урок меняет данные и проверяет, что формула находит нужную пару.
Однако лишний столбец легко удалить или забыть протянуть на новые строки, поэтому в новых таблицах условия чаще перемножают прямо в формуле.
Формула массива: ИНДЕКС и ПОИСКПОЗ или ПРОСМОТРX с произведением условий
Условия в формуле массива перемножаются: каждое сравнение даёт массив ИСТИНА и ЛОЖЬ, а произведение оставляет единицу только там, где выполнены все условия. По справке Microsoft ИСТИНА*1=1, а ЛОЖЬ*1=0, поэтому логические значения считаются как числа[3].
| Способ | Формула | Результат |
|---|---|---|
| ИНДЕКС и ПОИСКПОЗ | =ИНДЕКС(C2:C7;ПОИСКПОЗ(1;(A2:A7=F2)*(B2:B7=G2);0)) | 110 |
| ПРОСМОТРX с произведением | =ПРОСМОТРX(1;(A2:A7=F2)*(B2:B7=G2);C2:C7) | 110 |
| ПРОСМОТРX со склейкой | =ПРОСМОТРX(F2&G2;A2:A7&B2:B7;C2:C7) | 110 |
| текст при промахе | =ПРОСМОТРX(1;(A2:A7=F2)*(B2:B7="Апрель");C2:C7;"нет данных") | нет данных |
Формула массива заменяет ВПР по нескольким условиям без столбца-ключа и работает на исходной таблице A:C. Порядок вычисления такой:
(A2:A7=F2)даёт массив ИСТИНА и ЛОЖЬ: совпал ли менеджер в каждой строке;(B2:B7=G2)даёт такой же массив для месяца;- произведение превращает пары в единицы и нули, и единица остаётся только в строке Петровой за февраль;
- ПОИСКПОЗ ищет первую единицу, а ИНДЕКС берёт сумму из этой строки.
Функции И и ИЛИ здесь не помогут: справка Microsoft прямо пишет, что в формулах массива их нельзя использовать непосредственно[3]. Запись =ИНДЕКС(C2:C7;ПОИСКПОЗ(1;И(A2:A7=F2;B2:B7=G2);0)) вернёт #Н/Д, потому что И сворачивает весь массив в одно значение.
В Microsoft 365 формулу подтверждают клавишей Enter, а устаревшие формулы массива требовали сочетания Ctrl+Shift+Enter[3]. Все диапазоны в произведении должны быть одного размера: сравнивать можно только диапазоны одинакового размера и размерности[3]. Синтаксис связки разобран на странице о функциях ИНДЕКС и ПОИСКПОЗ по отдельности, аргументы ПРОСМОТРX — в разборе шести аргументов ПРОСМОТРX.
Именно поэтому для задач, где подходящих строк несколько, нужен отдельный инструмент — функция ФИЛЬТР.
Пример с ФИЛЬТР: все строки по двум условиям
Поиск по нескольким условиям функцией ФИЛЬТР возвращает все подходящие строки, а не первую: признаки «и» перемножаются, признаки «или» складываются[5]. Ответ разливается по соседним ячейкам, сколько бы строк ни нашлось.
| Задача | Формула | Результат |
|---|---|---|
| сумма Петровой за февраль | =ФИЛЬТР(C2:C7;(A2:A7=F2)*(B2:B7=G2)) | 110 |
январь и сумма больше 100 | =ФИЛЬТР(A2:C7;(B2:B7="Январь")*(C2:C7>100)) | две строки: Иванов 120, Сидоров 143 |
| Петрова или Сидоров | =ФИЛЬТР(A2:C7;(A2:A7="Петрова")+(A2:A7="Сидоров")) | три строки |
Каждое сравнение в скобках — отдельный массив той же высоты, что и таблица. Третий и четвёртый признак добавляют ещё одним множителем, например *(C2:C7>100), а смешанную логику записывают со скобками: ((усл1)+(усл2))*(усл3).
Ячейки под формулой должны быть свободны: если что-то блокирует выходной диапазон, Excel покажет #ПЕРЕНОС![6] Если не подошла ни одна запись, без третьего аргумента функция вернёт #CALC!, потому что Excel пока не поддерживает пустые массивы[5]. Подпись на этот случай задают третьим аргументом: ;"нет строк".
По справке Microsoft ФИЛЬТР работает в Microsoft 365, Excel 2024 и Excel 2021, включая версии для Mac, а также на iPad, iPhone и Android[5]. В Google Таблицах FILTER принимает каждое сравнение отдельным аргументом, и оно должно совпадать по длине с диапазоном[7]. Подробности о третьем аргументе и сортировке результата — на странице о функции ФИЛЬТР и её аргументах.
Остаётся понять, когда от поиска по сочетанию полей лучше отказаться.
Когда поиск по составному ключу не подойдёт
Поиск по нескольким условиям не подойдёт, если сочетание полей не уникально, типы данных в столбцах различаются или нужен итог, а не строка. Проверьте таблицу по списку до того, как строить отчёт.
- Если сочетание полей повторяется, ВПР и ИНДЕКС с ПОИСКПОЗ вернут только первую строку[1] — сначала посчитайте повторы ключа или выводите все строки через ФИЛЬТР.
- При числах, сохранённых как текст, в одном из проверяемых столбцов сравнение не совпадёт: по справке Microsoft числа и даты в первом столбце не должны храниться как текст[2].
- Если файл откроют в Excel 2016 или Excel 2019, формулы с ПРОСМОТРX не сработают[4] — оставьте вспомогательный столбец.
- Когда сравниваемые диапазоны разной высоты, произведение массивов не сложится: сравнивать можно только диапазоны одинакового размера[3].
В Google Таблицах ВПР тоже не принимает больше одного ключа, а справка Google предлагает тот же вспомогательный столбец со склейкой через &[1]. Поэтому ключ-склейка остаётся самым переносимым способом: формула одинаково читается в Excel и в браузере. Соседние приёмы подстановки собраны в каталоге формул Excel для поиска данных.
Частые вопросы
Как сделать ВПР по двум условиям?
Чтобы сделать поиск по двум условиям, склейте их в ключ во вспомогательном столбце =B2&"_"&C2 и ищите той же склейкой: =ВПР(G2&"_"&H2;$A$2:$D$7;4;0). Ключ должен стоять левее столбца с ответом.
Можно ли обойтись без вспомогательного столбца?
Да: ИНДЕКС с ПОИСКПОЗ или ПРОСМОТРX ищут единицу в произведении условий прямо в формуле. Так ВПР по нескольким условиям заменяется одной формулой без лишнего столбца.
Почему формула с функцией И возвращает #Н/Д?
Функция И сворачивает массив сравнений в одно значение, поэтому в формулах массива её нельзя использовать непосредственно[3]. Вместо И сравнения перемножают, вместо ИЛИ — складывают.
Как вывести все подходящие строки сразу?
Все строки выводит ФИЛЬТР: =ФИЛЬТР(A2:C7;(B2:B7="Январь")*(C2:C7>100)) покажет каждую подходящую запись. Ячейки под формулой должны быть пустыми, иначе появится #ПЕРЕНОС!.
Что делать, если по двум условиям ничего не найдено?
При отсутствии совпадений ВПР и ИНДЕКС с ПОИСКПОЗ вернут #Н/Д, а ФИЛЬТР без третьего аргумента выдаст #CALC![5]. Текст на этот случай задают четвёртым аргументом ПРОСМОТРX или третьим аргументом ФИЛЬТР.
Источники
- [1] Google, справка «VLOOKUP», 2026
- [2] Microsoft, справка «Функция ВПР», 2026
- [3] Microsoft, справка «Использование формул массива: рекомендации и примеры», 2026
- [4] Microsoft, справка «Функция ПРОСМОТРX», 2026
- [5] Microsoft, справка «Функция ФИЛЬТР», 2026
- [6] Microsoft, справка «Формулы динамического массива и поведение перенесенного массива», 2026
- [7] Google, справка «Функция FILTER», 2026