=ПРОСМОТРX(F2;A2:A6;C2:C6) (по-английски XLOOKUP) ищет значение из F2 в A2:A6 и возвращает значение из той же строки C2:C6. По умолчанию она ищет точное совпадение, столбец поиска может стоять где угодно, и ей нужен Excel 2021 или Microsoft 365 (в Excel 2019 и более старых используйте ИНДЕКС и ПОИСКПОЗ). Введите в F2 другой товар. Таблицы на этой странице показывают английскую запись, но формулы в них можно вводить и по-русски, с точкой с запятой.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Bread | $2.40 | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=ПРОСМОТРX(F2;A2:A6;C2:C6)Щёлкните G2: диапазон поиска и диапазон результата обведены отдельно. Замените C2:C6 на B2:B6, и G2 вернёт категорию. Номера столбца, который нужно считать, здесь нет, поэтому вставка столбца между A и C не ломает формулу: Excel сдвигает оба диапазона.
Синтаксис ПРОСМОТРX
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
| Аргумент | Что делает | По умолчанию |
|---|---|---|
lookup_value | Значение, которое нужно найти. | обязательный |
lookup_array | Столбец (или строка), в котором ищут. | обязательный |
return_array | Столбец, строка или блок, из которого берётся результат. Той же высоты, что lookup_array. | обязательный |
if_not_found | Что показать, когда ничего не совпало. | #Н/Д |
match_mode | 0 точное, -1 точное или следующее меньшее, 1 точное или следующее большее, 2 подстановочные знаки. | 0 |
search_mode | 1 с первого до последнего, -1 с последнего до первого, 2 и -2 двоичный поиск по отсортированным данным. | 1 |
Обязательны только первые три. Чтобы пропустить необязательный аргумент и задать следующий, оставьте пустое место между разделителями: =ПРОСМОТРX(F2;A2:A6;C2:C6;;0;-1) задаёт search_mode и оставляет if_not_found по умолчанию.
Несколько столбцов сразу
Дайте ПРОСМОТРX диапазон результата шириной в несколько столбцов, и вернётся вся строка. Результат займёт ячейки рядом с формулой.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Category | Price | Stock |
| 2 | Apple | Fruit | $1.20 | 40 |
| 3 | Pear | Fruit | $1.50 | 25 |
| 4 | Carrot | Vegetable | $0.80 | 60 |
| 5 | Bread | Bakery | $2.40 | 15 |
| 6 | Milk | Dairy | $1.10 | 30 |
| 7 | Look for | Carrot | ||
| 8 | Result | Vegetable | $0.80 | 60 |
=ПРОСМОТРX(B7;A2:A6;B2:D6)Одна формула в B8 заполняет B8:D8 значениями Vegetable, $0.80 и 60. Введите что-нибудь в C8, и B8 покажет #ПЕРЕНОС! (в таблице по-английски #SPILL!; таблицы здесь показывают ошибки под английскими именами), потому что результату не хватает места; удалите это, и результат вернётся. Чтобы вернуть столбцы в другом порядке, оберните диапазон результата в ВЫБОРСТОЛБЦ (CHOOSECOLS): =ПРОСМОТРX(B7;A2:A6;ВЫБОРСТОЛБЦ(B2:D6;3;1)) даёт сначала Stock, потом Category.
ПРОСМОТРX влево и сообщение, когда ничего не найдено
Столбец поиска не обязан стоять первым. Здесь ПРОСМОТРX ищет цены в столбце C и возвращает название товара из столбца A, чего ВПР сделать не может. Четвёртый аргумент говорит, что показать, когда ни один товар не стоит столько.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Price | Product | |
| 2 | Apple | Fruit | $1.20 | 40 | $2.40 | Bread | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=ПРОСМОТРX(F2;C2:C6;A2:A6;"No product")$2.40 возвращает Bread. Замените F2 на 3, и G2 покажет «No product» вместо #Н/Д. "" в четвёртом аргументе показывает ячейку, которая выглядит пустой. if_not_found покрывает только «не найдено»: диапазон результата неверной высоты по-прежнему даёт #ЗНАЧ!, и это именно то, что нужно увидеть.
Найти последнее совпадение
ПРОСМОТРX возвращает первое совпадение сверху. Задайте шестому аргументу, search_mode, значение -1, и поиск пойдёт снизу, так что функция вернёт последнее совпадение: последний заказ, самую свежую цену, последний статус.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | First | Last | |
| 2 | 2026-03-02 | Ben | 120 | Ben | 120 | 60 | |
| 3 | 2026-03-05 | Ana | 80 | ||||
| 4 | 2026-03-09 | Ben | 45 | ||||
| 5 | 2026-03-12 | Cara | 200 | ||||
| 6 | 2026-03-20 | Ben | 60 | ||||
| 7 | 2026-03-24 | Ana | 95 |
=ПРОСМОТРX(E2;B2:B7;C2:C7;;0;-1)Первый заказ Ben 120, последний 60. Замените E2 на Ana: 80 и 95. Это работает, только если строки идут по датам. Если нет, ищите по последней дате клиента: =ПРОСМОТРX(1;(B2:B7=E2)*(A2:A7=МАКСЕСЛИ(A2:A7;B2:B7;E2));C2:C7).
Приблизительный поиск: следующее меньшее или большее
match_mode -1 возвращает точное совпадение, а если его нет, следующее меньшее значение. Это правило для интервалов: уровень комиссии, налоговая ставка, оценка. В отличие от ВПР с ИСТИНА, таблицу не нужно сортировать. Интервалы ниже нарочно стоят вразнобой.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Sales from | Rate | Rep | Sales | Rate | |
| 2 | 5000 | 5% | Ana | 750 | 0% | |
| 3 | 0 | 0% | Ben | 4,200 | 3% | |
| 4 | 10000 | 8% | Cara | 5,000 | 5% | |
| 5 | 1000 | 3% | Dev | 12,500 | 8% |
=ПРОСМОТРX(E2;$A$2:$A$5;$B$2:$B$5;;-1)4,200 у Ben лежит между 1000 и 5000, поэтому он получает 3% интервала от 1000. 5,000 у Cara это точное совпадение, 5%. match_mode 1 работает наоборот, точное или следующее большее, и отвечает на вопросы «самая маленькая коробка, в которую влезет» или «ближайшее окно доставки»: =XLOOKUP(18,{5;12;25;50},{"S";"M";"L";"XL"},,1) (английская запись) возвращает L.
ПРОСМОТРX с подстановочными знаками
match_mode 2 превращает * (любые символы) и ? (один символ) в подстановочные знаки. Без него ПРОСМОТРX ищет сами эти символы, в отличие от ВПР (чьё точное совпадение принимает подстановочные знаки), и именно поэтому ПРОСМОТРX с подстановочными знаками обычно возвращает #Н/Д или свой текст if_not_found:
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None") None: no product is named *coffee*
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None",2) 2.9, the price of Iced coffee
В русском Excel вторая формула пишется =ПРОСМОТРX("*coffee*";A2:A6;C2:C6;"None";2).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Contains | Price | |
| 2 | Green tea | Drinks | $3.20 | coffee | $2.90 | |
| 3 | Iced coffee | Drinks | $2.90 | |||
| 4 | Coffee beans | Pantry | $8.50 | |||
| 5 | Black tea | Drinks | $2.70 | |||
| 6 | Orange juice | Drinks | $3.40 |
=ПРОСМОТРX("*"&E2&"*";A2:A6;C2:C6;"None";2)«coffee» первым находит Iced coffee, $2.90. Добавьте -1 шестым аргументом, и функция найдёт Coffee beans, $8.50. Как и любой поиск в Excel, совпадение не учитывает регистр. Чтобы в match_mode 2 найти настоящую звёздочку или вопросительный знак, поставьте перед ним тильду: "~*".
Двумерный ПРОСМОТРX
ПРОСМОТРX, которая возвращает целую строку, может быть диапазоном результата для второй ПРОСМОТРX. Внутренняя выбирает строку по региону, внешняя выбирает из этой строки столбец месяца.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | South | ||
| 7 | Month | Feb | ||
| 8 | Sales | 3,600 |
=ПРОСМОТРX(B7;B1:D1;ПРОСМОТРX(B6;A2:A5;B2:D5))ПРОСМОТРX(B6;A2:A5;B2:D5) возвращает строку South: 3100, 3600 и 3300. Внешняя ПРОСМОТРX находит Feb в B1:D1 и берёт соответствующее значение из этой строки: 3,600. Выберите другой регион и месяц в B6 и B7. Вариант того же поиска с ИНДЕКС и ПОИСКПОЗ есть на странице ИНДЕКС и ПОИСКПОЗ.
ПРОСМОТРX в старом Excel и Google Таблицах
ПРОСМОТРX есть в Excel 2021, Excel 2024, Microsoft 365, Excel в браузере и мобильных приложениях. Если открыть файл с ней в Excel 2019 или старше, формулы покажут #ИМЯ? (#NAME?), как только пересчитаются. Когда файл должен работать везде, пишите поиск через ИНДЕКС и ПОИСКПОЗ, их понимает любая версия:
=XLOOKUP(F2, A2:A6, C2:C6, "Not found")
=IFNA(INDEX(C2:C6, MATCH(F2, A2:A6, 0)), "Not found")
В русском Excel вторая формула пишется =ЕСНД(ИНДЕКС(C2:C6;ПОИСКПОЗ(F2;A2:A6;0));"Not found"). В Google Таблицах XLOOKUP есть с 2022 года, с теми же аргументами. Различия бок о бок разобраны на странице ВПР и ПРОСМОТРX. Чтобы искать сразу по двум столбцам (товар и размер, имя и дата), используйте приём =ПРОСМОТРX(1;(B2:B6=E2)*(C2:C6=F2);D2:D6), он объяснён на странице поиск по нескольким условиям.
Практика: цена или "Not found"
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Kiwi | ||
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
Ваша очередь: В G2 верните цену товара из F2 или текст Not found, если его нет в списке.
Практика: скидка по сумме заказа
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Order from | Discount | Order | Discount | |
| 2 | $0 | 0% | $320 | ||
| 3 | $100 | 5% | |||
| 4 | $250 | 10% | |||
| 5 | $500 | 15% |
Ваша очередь: Каждая скидка действует от своей суммы заказа и выше. В E2 с помощью ПРОСМОТРX верните скидку для суммы заказа из D2.
Часто задаваемые вопросы
Как пользоваться ПРОСМОТРX в Excel?
Укажите три аргумента: что найти, столбец, в котором искать, и столбец, из которого вернуть результат. =ПРОСМОТРX("Pear";A2:A6;C2:C6) находит Pear в A2:A6 и возвращает значение из той же строки C2:C6. Если не сказать иначе, функция ищет точное совпадение.
В каких версиях Excel есть ПРОСМОТРX?
В Excel 2021, Excel 2024, Microsoft 365 и Excel в браузере. В Excel 2019 и более старых формула показывает #ИМЯ?; используйте там =ИНДЕКС(C2:C6;ПОИСКПОЗ(F2;A2:A6;0)). В Google Таблицах XLOOKUP тоже есть.
Как сделать, чтобы ПРОСМОТРX возвращала пустую ячейку или текст вместо #Н/Д?
Используйте четвёртый аргумент, if_not_found: =ПРОСМОТРX(F2;A2:A6;C2:C6;"Not found") или "", чтобы ячейка выглядела пустой. Он заменяет только случай «не найдено»; другие ошибки по-прежнему видны.
Как найти последнее совпадение с ПРОСМОТРX?
Задайте шестому аргументу, search_mode, значение -1, чтобы поиск шёл снизу вверх: =ПРОСМОТРX("Ben";B2:B7;C2:C7;;0;-1) возвращает последнюю сумму Ben, а не первую.
Может ли ПРОСМОТРX вернуть больше одного столбца?
Да. Дайте ей диапазон результата шириной в несколько столбцов, например =ПРОСМОТРX(F2;A2:A6;B2:D6), и результат займёт соседние ячейки справа. Эти ячейки должны быть пустыми, иначе Excel покажет #ПЕРЕНОС!.