Функцией ВПР (по-английски VLOOKUP) пользоваться довольно просто. Есть десятки примеров и даже пошаговых инструкций. Однако, новичкам в Excel непросто даётся понимание того, как работают формулы с функцией ВПР.
В этой статье я попробую максимально понятно описать, как работает ВПР простыми словами и научить вас её использовать.
Как работает ВПР. Для чайников
Расшифровка названия функции уже дает половину ответа на вопрос “Как работает ВПР?”. Ведь она расшифровывается как Вертикальный ПРосмотр. Потому что находит искомое, просматривая данные в таблице вертикально.
Синтаксис функции ВПР

Я обучал синтаксису функции многих людей, и выявил, что самая распространенная сложность – запомнить порядок аргументов функции, что за чем следует.
Когда я думаю о функции, я вспоминаю знакомую всем телепередачу “Что? Где? Когда?”.
Первые два аргумента — как раз “Что?” и “Где?”, и идут именно в этом порядке. Первый аргумент – искомое значение, иначе говоря, что мы ищем. Второй аргумент — диапазон, таблица, простыми словами — где мы ищем. Третий аргумент числовой, и обозначает, когда мы должны остановиться, считая столбцы в таблице слева направо от найденного в первом столбце таблицы значения.
А четвертый аргумент (“интервальный просмотр”) вроде бы даже не обязательный, но на поверку очень важен. Ведь от его значения зависит, как будет работать функция. Жаль, вопроса “Как?” в телепередаче не было. :)
Интервальный просмотр — 0 или 1, ЛОЖЬ или ИСТИНА
Скажу заранее. Если нужно просто найти искомое значение и вернуть то, что напротив — используйте в этом параметре 0 (или ЛОЖЬ, но 0 напечатать проще) и не читайте дальше.
Если же хотите узнать главный секрет функции ВПР, то дальше информация для вас.
Тот, кто перевел последний параметр range lookup с английского как “интервальный просмотр”, испортил жизнь многим новичкам в Excel.
Потому что там нет ничего интервального, все вполне себе сплошное. А корректно перевести параметр следовало бы “способ просмотра диапазона“.
Также справочный текст говорит следующее:

- ЛОЖЬ или 0 обозначает точное совпадение;
- ИСТИНА, 1 или эквивалентный им пропуск параметра (т.к. это значение по умолчанию) обозначает приблизительное совпадение
И вот с этим приблизительным совпадением сразу возникает ряд вопросов. Что значит приблизительное? Насколько? Каким алгоритмом считается “приблизительность”? Зачем сортировать? И почему по возрастанию?
Тайна четвертого параметра ВПР
Корректно и глубоко тема разницы алгоритмов поиска ВПР и ПОИСКПОЗ в рунете практически не раскрыта. Между тем, примечательный факт в том, что:
- Когда четвертый параметр ЛОЖЬ или 0 — используется линейный поиск;
- Когда он ИСТИНА, 1 или не указан явно, но используется по умолчанию — используется бинарный поиск.
В чем разница?
Линейный поиск — это когда Excel находит искомое значение, пробегая сверху вниз по одной строке. Это совершенно не оптимально, и именно поэтому с большими таблицами ВПР работает очень медленно!
Бинарный же поиск в Excel позволяет находить данные практически мгновенно, так как выполняет четыре основных шага:
- Длина диапазона данных делится пополам и позиция чтения перемещается в середину.
- Найденное значение (пусть n) сравнивается с тем, которое мы ищем (пусть m).
- Если m > n, то берется вторая часть массива, если m < n — первая часть.
- Далее шаги 1-3 повторяются на выбранной части диапазона.
Простыми словами, это похоже на поиск по словарю. Открываем его посередине, смотрим, в какой половине нужное нам значение. В первой? Тогда открываем первую часть посередине, и так продолжаем делить напополам, пока не находим искомое.
В сравнении с линейным поиском, на целиком заполненном столбце Excel (1048576 строк, или 2 в 20 степени) бинарный будет в ~52.000 раз быстрее! (1048576 поделить на 20).
Но есть несколько моментов, которые нужно знать для работы с ВПР в этом режиме:
- Данные должны быть сортированы по возрастанию (как и полагается любому словарю).
- Если искомое не найдено, возвращается значение той строки, что предшествовала бы искомой, если бы она была в диапазоне.
- Если вы уверены, что все искомые значения в диапазоне присутствуют, достаточно будет только сортировки
- Если искомое может отсутствовать, а вы не хотите возвращать значение другой строки, формулу можно немного усложнить.
=ЕСЛИ(ВПР(искомое;диапазон;1;1)<>искомое;"";ВПР(искомое;диапазон;n;1))
Так будет выглядеть формула, которая будет возвращать пустоту, если искомое не найдено, при этом будет оставаться столь же быстрой (практически мгновенной даже при работе с сотнями тысяч строк!).
Важный момент – в Excel 2019 и выше даже при использовании параметра 0 используется оптимальный быстрый алгоритм, поэтому большого прироста скорости в последних версиях такая формула не даст (зато даст в Excel 2016 и всех версий что раньше). Вероятнее всего, в Microsoft решили, что пришло время упростить жизнь пользователям, которые не хотят во всём этом разбираться :)
Как сделать ВПР — понятная пошаговая инструкция
Как сделать правильно формулу ВПР, чтобы найти несколько значений одной таблицы в другой и найти совпадения, или для совпадающих данных вернуть данные напротив?
Ниже пошаговая инструкция по использованию функции ВПР с полезными лайфхаками и картинками. Итак:
Если читали выше, я упоминал, как просто запомнить синтаксис функции ВПР. 3 вопроса в указанном порядке. Что? Где? Когда? И потом уже “Как?”
- Что?
Что будет искать формула? Как правило, здесь указывается адрес ячейки, в которой находится искомое значение.
- Где?
Где будет искать формула значение из первого шага? Обычно тут указывается диапазон ячеек, состоящий из нескольких столбцов. Лайфхак: выделяйте столбцы целиком (например, B:D), а не диапазон ($B$2:$D$250). Это быстрее и не требует закреплять диапазоны (а закреплять их нужно, иначе при протягивании формулы вниз адрес будет меняться). Выделить столбцы можно, проведя по буквам столбцов левой кнопкой мыши (как показывает стрелка на скриншоте).
- Когда?
Когда остановиться, считая слева направо для выбора возвращаемого формулой значения? В данном случае нам нужна сумма, а это второй столбец таблицы.
- Как?
Как искать? О разнице способов поиска ВПР читайте выше: Интервальный просмотр – 0 или 1, ЛОЖЬ или ИСТИНА? Обычно выбирается линейный поиск, так что тут вводим “0”.
И на всякий случай, пройдем все шаги подряд и посмотрим, как это выглядит на практике.

ВПР по вхождению подстроки
Помимо поиска по точному совпадению, ВПР умеет искать данные и с неточным совпадением, т.к. поддерживает подстановочные символы (? и *). Важно, что их учёт возможен только в режиме линейного поиска (четвертый параметр 0 или ЛОЖЬ). Ниже пример с использованием знака вопроса, обозначающего один любой символ:

Не работает ВПР — ошибки и причины
Функция ВПР иногда ведет себя непредсказуемо, например, не подтягивает значения, возвращает ошибки там, где не должна, или возвращает неожиданные значения. Рассмотрим, почему ВПР не срабатывает так, как должен.
ВПР выдает ошибку #Н/Д
Формулы с ВПР выдают ошибку “#Н/Д”, когда функция не находит искомое значение в указанной таблице. Следует понимать, что поиск производится исключительно по первому столбцу, а также — что если не закрепить выбранный диапазон поиска, при протягивании формулы будет смещаться и он, что в 99% случаев будет приводить к ошибкам.
Хотите избавиться от ошибки, когда искомое не найдено? Почитайте, как сделать это с помощью функции ЕСЛИОШИБКА в соответствующей статье. А я лишь приведу формулы оттуда:
=ЕСЛИОШИБКА(ВПР(ячейка-или-значение;диапазон;номер-столбца;0);"ошибка")
=ЕСЛИОШИБКА(ВПР(ячейка-или-значение;диапазон;номер-столбца;0);"")
ВПР не подтягивает значение, хотя искомое в таблице есть
Иногда такое бывает — вы видите, что в таблице есть данные, которые вы ищете, но ВПР будто не срабатывает. Не находит данные. Абсолютно всегда проблема не в ВПР, а в самих данных, и они действительно не совпадают. Самые распространенные проблемы, когда визуально в ячейках одинаковы, но на поверку — нет:
- В таблице искомых значений или в диапазоне поиска присутствуют лишние пробелы, которые нужно удалить.
- Вместо обычных пробелов в ячейках используются неразрывные пробелы, визуально между ними нет никакой разницы, но программа её видит.
- В данных присутствуют переносы строк, символы табуляции, возврат каретки и другие виды “невидимых” символов
- Вместо кириллицы используется латиница или наоборот, для букв с идентичным написанием (для компьютера русская А и английская A – разные символы!). Тогда нужно заменить кириллицу на похожую латиницу (или наоборот).
Рекомендация в таких случаях следующая. Попробуйте сравнить ячейки, которые видите как одинаковые, отдельно (Например, скопируйте их в ячейки A1 и A2 на другой лист). Сначала сравните целиком (=A1=A2, должно вернуть “ИСТИНА”), если конструкция возвращает “ЛОЖЬ”, сравните их уже посимвольно (первый символ с первым, второй со вторым и т.д.), здесь вам поможет функция ПСТР.
Понравилась статья? Поддержите ее автора!
Набор инструментов !SEMTools поможет решить множество задач без ввода сложных формул и сэкономит ваше время. И вам полезно, и автору приятно!
Добрый день. Отличная статья, но, возможно, стоит еще осветить проблему, когда столбец с нужными (возвращаемыми) данным находится левее от столбца с искомым значением, то можно воспользоваться “Левым ВПР”. Через функцию =выбор. А еще лучше использовать новый эксель и использовать формулу =просмотрx, которая проще и лучше будет для новичков. (x на конце формулы на английском, что нелепо)