Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

ПРОСМОТРX

ПРОСМОТРХ — так эту функцию чаще всего ищут и так же чаще всего набирают. А правильно её имя пишется ПРОСМОТРX. Нет, я не повторяюсь: слова написаны по-разному. В первом на конце русская «Х», во втором латинская «X», та же, что в английском XLOOKUP. Глазом разницы не видно, зато Excel её видит прекрасно: с русской Х он функцию не узнает и вернёт #ИМЯ?. Так что имя надёжнее выбрать из подсказки, чем вбивать по памяти :)

Сама функция ПРОСМОТРX ищет значение в одном столбце и возвращает соседнее из другого: =ПРОСМОТРX(E2;A2:A100;C2:C100) найдёт E2 в столбце A и вернёт значение из той же строки столбца C. В отличие от ВПР, ей не нужен номер столбца, по умолчанию она ищет точное совпадение, умеет искать влево и снизу вверх, а вместо #Н/Д сразу выводит ваш текст: =ПРОСМОТРX(E2;A2:A100;C2:C100;"Нет в прайсе"). Функция есть в Excel 2021, 2024 и Microsoft 365.

Раздел функцийСсылки и массивы
Название на английскомXLOOKUP
Версии ExcelExcel 2021, Excel 2024, Excel для Microsoft 365 (Windows и Mac), Excel в интернете
ВолатильностьНе волатильная
Похожие функцииВПР, ПРОСМОТР, ИНДЕКС и ПОИСКПОЗ, ФИЛЬТР

Синтаксис функции ПРОСМОТРX

Обязательных аргументов три, ещё три можно не указывать:

=ПРОСМОТРX(искомое_значение;просматриваемый_массив;возвращаемый_массив;[если_ничего_не_найдено];[режим_сопоставления];[режим_поиска])
  • искомое_значение — что ищем: ячейка, число или текст в кавычках;
  • просматриваемый_массив — где ищем: один столбец или одна строка;
  • возвращаемый_массив — откуда берём результат: столбец той же высоты или сразу несколько столбцов;
  • если_ничего_не_найдено — что вывести вместо #Н/Д, например "Нет в прайсе" или 0;
  • режим_сопоставления — 0 точное совпадение (по умолчанию), −1 точное или ближайшее меньшее, 1 точное или ближайшее большее, 2 подстановочные знаки * и ?; в Microsoft 365 добавился режим 3, сравнение с регулярным выражением;
  • режим_поиска — 1 сверху вниз (по умолчанию), −1 снизу вверх, 2 и −2 двоичный поиск по данным, отсортированным по возрастанию или убыванию.

Чтобы не путаться в порядке, я объясняю аргументы тремя вопросами: что ищем, где ищем, откуда берём. У ВПР «где» и «откуда» слиты в одну таблицу и номер столбца, отсюда и половина её ошибок. Регистр букв ПРОСМОТРX не различает: «чайник» и «Чайник» для неё одно и то же.

Как работает ПРОСМОТРX на простом примере

Возьмём прайс: артикул, товар, цена. Нужно по артикулу подтянуть цену и название.

ПРОСМОТРX: цена и товар по артикулу
F2=ПРОСМОТРX(E2;A2:A5;C2:C5)
ABCDEFG
1АртикулТоварЦенаИщемЦенаТовар
2A-1024Чайник2490A-10473750=ПРОСМОТРX(E2;A2:A5;C2:C5)Блендер=ПРОСМОТРX(E2;A2:A5;B2:B5)
3A-1031Тостер1990
4A-1047Блендер3750
5A-1052Миксер2150

Поменяйте артикул в E2 на A-1031, и формулы вернут 1990 и «Тостер». Та же задача через ВПР: =ВПР(E2;A2:C5;3;0). ПРОСМОТРX не нужен номер столбца и ноль в конце.

В английском Excel: =XLOOKUP(E2,A2:A5,C2:C5)

Формула берёт артикул из E2, находит его в столбце A и возвращает значение из той же строки столбца C. Если вставить в прайс новый столбец между B и C, формула не сломается: она ссылается на сам столбец с ценой, а не на его номер. С ВПР в такой ситуации номер столбца приходится исправлять вручную.

Чем ПРОСМОТРX отличается от ВПР

Короче говоря, ПРОСМОТРX закрывает почти все неудобства ВПР. Сравнение по пунктам:

Что сравниваемВПРПРОСМОТРX
Точное совпадениеНужно указать 0 или ЛОЖЬ последним аргументомПо умолчанию
Поиск влевоНет, только в первом столбце таблицыДа, столбцы могут стоять в любом порядке
Новый столбец в таблицеНомер столбца сбиваетсяФормула продолжает работать
Если не найдено#Н/Д, нужна ЕСЛИОШИБКАСвой текст четвёртым аргументом
Последнее совпадениеНетДа, режим поиска −1
Несколько столбцов сразуНет, по формуле на столбецДа, результат разливается вправо
Приблизительный поискТолько по отсортированной таблицеБез сортировки, ближайшее меньшее или большее
Версии ExcelВсе2021, 2024, Microsoft 365

Единственный козырь ВПР: она работает в любом Excel. Если файл откроют в Excel 2016 или 2019, формула с ПРОСМОТРX покажет #ИМЯ?. Для таких случаев есть связка ИНДЕКС и ПОИСКПОЗ, она разобрана в статье про левый ВПР.

Поиск влево и сразу несколько столбцов

Просматриваемый и возвращаемый массивы в ПРОСМОТРX задаются отдельно, поэтому столбец с ключом может стоять где угодно, хоть последним. А если возвращаемый массив шириной в несколько столбцов, одна формула вернёт их все.

Артикул справа, данные слева
G2=ПРОСМОТРX(F2;D2:D5;A2:C5)
ABCDEFGHI
1ТоварЦенаОстатокАртикулАртикулТоварЦенаОстаток
2Чайник249012A-1024A-1031Тостер=ПРОСМОТРX(F2;D2:D5;A2:C5)19900
3Тостер19900A-1031
4Блендер37505A-1047
5Миксер21508A-1052

Формула стоит только в G2. Возвращаемый массив A2:C5 шириной в 3 столбца, поэтому товар, цена и остаток разлились в G2:I2. ВПР здесь бессильна: артикул стоит правее данных.

В английском Excel: =XLOOKUP(F2,D2:D5,A2:C5)

Важный момент: ячейки справа от формулы должны быть пустыми. Если в H2 или I2 что-то есть, формула вернёт #ПЕРЕНОС!. Ровно так же ПРОСМОТРX работает и по горизонтали: если искать в строке, а возвращать строку, получится аналог ГПР.

Свой текст вместо #Н/Д

Четвёртый аргумент задаёт, что показать, если искомого нет. Оборачивать формулу в ЕСЛИОШИБКА больше не нужно.

Если артикула нет в прайсе
E3=ПРОСМОТРX(D3;$A$2:$A$4;$B$2:$B$4;"Нет в прайсе")
ABCDE
1АртикулЦенаИщемЦена
2A-10242490A-10311990=ПРОСМОТРX(D2;$A$2:$A$4;$B$2:$B$4;"Нет в прайсе")
3A-10311990A-2000Нет в прайсе=ПРОСМОТРX(D3;$A$2:$A$4;$B$2:$B$4;"Нет в прайсе")
4A-10473750A-10473750=ПРОСМОТРX(D4;$A$2:$A$4;$B$2:$B$4;"Нет в прайсе")

Диапазоны закреплены знаком $, чтобы при протягивании формулы вниз они не съехали. Вместо текста можно указать 0 или пустую строку "".

В английском Excel: =XLOOKUP(D3,$A$2:$A$4,$B$2:$B$4,"Not found")

Есть и тонкость, которой у ЕСЛИОШИБКА нет. Четвёртый аргумент срабатывает только тогда, когда значение не найдено. Если же ошибка в самих данных (например, в столбце цен стоит #ДЕЛ/0!), ПРОСМОТРX её честно вернёт, а не спрячет. На поверку это полезно: реальные проблемы в таблице не маскируются под «Нет в прайсе».

Приблизительное совпадение: скидки и тарифы

Когда нужно найти не точное значение, а интервал, в который оно попадает, используйте пятый аргумент −1: точное совпадение или ближайшее меньшее. Классика — шкала скидок от суммы заказа.

Скидка по сумме заказа
E4=ПРОСМОТРX(D4;$A$2:$A$5;$B$2:$B$5;;-1)
ABCDE
1Сумма отСкидкаСумма заказаСкидка
200%32000%=ПРОСМОТРX(D2;$A$2:$A$5;$B$2:$B$5;;-1)
350003%99993%=ПРОСМОТРX(D3;$A$2:$A$5;$B$2:$B$5;;-1)
4100005%125005%=ПРОСМОТРX(D4;$A$2:$A$5;$B$2:$B$5;;-1)
5200007%200007%=ПРОСМОТРX(D5;$A$2:$A$5;$B$2:$B$5;;-1)

12 500 нет в столбце A, поэтому берётся ближайшее меньшее значение, 10 000, и скидка 5%. Четвёртый аргумент пропущен: две точки с запятой подряд.

В английском Excel: =XLOOKUP(D4,$A$2:$A$5,$B$2:$B$5,,-1)

В отличие от ВПР с интервальным просмотром 1, шкалу не обязательно сортировать по возрастанию. Режим 1 работает зеркально: точное совпадение или ближайшее большее. Он нужен, например, чтобы подобрать коробку, в которую влезет груз, или тариф, покрывающий нужный объём.

Поиск по части текста

Звёздочка и вопросительный знак работают в ПРОСМОТРX только в режиме сопоставления 2. Без него «*кефир*» ищется буквально, вместе со звёздочками.

Цена по слову из названия
E2=ПРОСМОТРX("*"&D2&"*";A2:A5;B2:B5;"Нет";2)
ABCDE
1ТоварЦенаИщемЦена
2Молоко 3,2% 1 л89кефир76=ПРОСМОТРX("*"&D2&"*";A2:A5;B2:B5;"Нет";2)
3Кефир 1% 0,9 л76сметана112=ПРОСМОТРX("*"&D3&"*";A2:A5;B2:B5;"Нет";2)
4Сметана 20% 300 г112ряженкаНет=ПРОСМОТРX("*"&D4&"*";A2:A5;B2:B5;"Нет";2)
5Йогурт питьевой 2,5%64

Регистр не важен: «кефир» находит «Кефир 1% 0,9 л». Если подходящих строк несколько, вернётся первая. Чтобы найти сам символ * или ?, поставьте перед ним тильду: ~*.

В английском Excel: =XLOOKUP("*"&D2&"*",A2:A5,B2:B5,"None",2)

Если нужно проверить сразу несколько слов или вывести все подходящие строки, а не первую, пригодятся приёмы из статьи про поиск по нескольким условиям.

Найти последнее совпадение снизу вверх

Шестой аргумент −1 заставляет ПРОСМОТРX просматривать список с конца. Так находят последнюю покупку клиента, последнюю цену товара или последний статус заказа в журнале.

Последняя покупка клиента
F2=ПРОСМОТРX(E2;$B$2:$B$6;$A$2:$A$6;;0;-1)
ABCDEFG
1ДатаКлиентСуммаКлиентПоследняя покупкаСумма
201.10.2026Иванов4500Иванов07.10.2026=ПРОСМОТРX(E2;$B$2:$B$6;$A$2:$A$6;;0;-1)1800=ПРОСМОТРX(E2;$B$2:$B$6;$C$2:$C$6;;0;-1)
303.10.2026Петрова2100Петрова15.10.2026=ПРОСМОТРX(E3;$B$2:$B$6;$A$2:$A$6;;0;-1)3400=ПРОСМОТРX(E3;$B$2:$B$6;$C$2:$C$6;;0;-1)
407.10.2026Иванов1800
512.10.2026Сидоров6300
615.10.2026Петрова3400

Без последнего аргумента формула вернула бы первую покупку Иванова, 01.10.2026. Журнал при этом не нужно сортировать.

В английском Excel: =XLOOKUP(E2,$B$2:$B$6,$A$2:$A$6,,0,-1)

Раньше ту же задачу решали трюком с ПРОСМОТР(2;1/(…)), который мало кто мог объяснить. Теперь это просто аргумент функции.

ПРОСМОТРX по нескольким условиям

Отдельного аргумента для второго условия у ПРОСМОТРX нет, но его легко обойти. Перемножим проверки: там, где совпали оба условия, получится 1, и эту единицу ищем.

Продажи по городу и товару
G2=ПРОСМОТРX(1;(A2:A5=E2)*(B2:B5=F2);C2:C5)
ABCDEFG
1ГородТоварПродажиГородТоварПродажи
2МоскваЧайник120КазаньЧайник64=ПРОСМОТРX(1;(A2:A5=E2)*(B2:B5=F2);C2:C5)
3МоскваТостер85
4КазаньЧайник64
5КазаньТостер47

(A2:A5=E2)*(B2:B5=F2) даёт массив {0;0;1;0}: оба условия выполнены только в третьей строке. Второй вариант, склейка ключей: =ПРОСМОТРX(E2&F2;A2:A5&B2:B5;C2:C5).

В английском Excel: =XLOOKUP(1,(A2:A5=E2)*(B2:B5=F2),C2:C5)

Условий может быть и три, и пять: каждое добавляется ещё одним множителем в скобках. Вариант со склейкой короче, но может ошибиться на ключах вида «12»&«3» и «1»&«23», поэтому для чисел я предпочитаю перемножение.

Почему ПРОСМОТРX выдаёт ошибку

В 99% случаев проблема не в функции, а в имени, версии Excel или самих данных. Пройдитесь по списку сверху вниз:

  • #ИМЯ? — Excel не узнал функцию. Либо версия старше 2021 (ПРОСМОТРX там нет), либо имя набрано с русской «Х». Проверка простая: начните вводить =ПРОСМ и посмотрите, предлагает ли Excel ПРОСМОТРX в подсказке.
  • #Н/Д — значение не найдено. Чаще всего мешают лишние пробелы в конце ячеек, числа, сохранённые как текст, или латинские буквы вместо русских в артикулах (А и A выглядят одинаково). Последнее лечится заменой кириллицы на латиницу.
  • #ЗНАЧ! — просматриваемый и возвращаемый массивы разного размера, например A2:A100 и C2:C99.
  • #ПЕРЕНОС! — результату из нескольких ячеек некуда разлиться: справа или снизу что-то есть.
  • Результаты «съехали» после протягивания — диапазоны не закреплены. Нажмите F4 на ссылке, чтобы получить $A$2:$A$100, подробнее в статье про абсолютные и относительные ссылки.
  • Приблизительный поиск вернул не то — пропущен пятый аргумент (по умолчанию точное совпадение) или выбран режим поиска 2 и −2 на несортированных данных.

Функция ПРОСМОТРX — частые вопросы

Чем ПРОСМОТРХ отличается от ПРОСМОТРX?

Ничем, кроме последней буквы. Настоящее имя функции пишется с латинской X, как в XLOOKUP. Формулу с русской Х Excel не узнает и вернёт #ИМЯ?.

Как ПРОСМОТРX называется на английском?

XLOOKUP. Формула =ПРОСМОТРX(E2;A2:A100;C2:C100) в английском Excel выглядит так: =XLOOKUP(E2,A2:A100,C2:C100).

В каких версиях Excel есть ПРОСМОТРX?

В Excel 2021, 2024, Microsoft 365 и Excel в интернете. В Excel 2019 и раньше её нет, там то же делает =ИНДЕКС(C2:C100;ПОИСКПОЗ(E2;A2:A100;0)).

Как вместо #Н/Д вывести пустую ячейку?

Укажите пустую строку четвёртым аргументом: =ПРОСМОТРX(E2;A2:A100;C2:C100;"").

Как найти последнее значение, а не первое?

Шестым аргументом −1: =ПРОСМОТРX(E2;B2:B100;A2:A100;;0;-1) просматривает список снизу вверх.

#Н/Д в ПРОСМОТРX почти всегда означает грязные данные: пробелы в конце, латиница вместо кириллицы, неявные дубли. С !SEMTools их можно найти и вычистить прямо в исходных ячейках, без формул и вспомогательных столбцов.
!SEMTools решает эту и сотни других задач в пару кликов!

Итоги: функция ПРОСМОТРX в Excel

ЗадачаФормула
Найти и вернуть значение=ПРОСМОТРX(E2;A2:A100;C2:C100)
Свой текст вместо #Н/Д=ПРОСМОТРX(E2;A2:A100;C2:C100;"Нет")
Вернуть несколько столбцов=ПРОСМОТРX(E2;D2:D100;A2:C100)
Ближайшее меньшее (шкала)=ПРОСМОТРX(D2;A2:A5;B2:B5;;-1)
По части текста=ПРОСМОТРX("*"&D2&"*";A2:A100;B2:B100;"Нет";2)
Последнее совпадение=ПРОСМОТРX(E2;B2:B100;A2:A100;;0;-1)
По двум условиям=ПРОСМОТРX(1;(A2:A100=E2)*(B2:B100=F2);C2:C100)
Excel 2019 и старше=ИНДЕКС(C2:C100;ПОИСКПОЗ(E2;A2:A100;0))

Надеюсь, на этой странице вы нашли то, что искали, и подтянули нужные данные без лишних мучений. Если у вас Excel 2021 или Microsoft 365, ПРОСМОТРX стоит сделать функцией по умолчанию вместо ВПР: в ней меньше способов ошибиться. А если формула всё равно отвечает #Н/Д, сначала проверьте данные, а не синтаксис.

Статьи, где используется ПРОСМОТРX