Menu

ПРОСМОТРX в Excel (эксель): формула и примеры (XLOOKUP)

=ПРОСМОТРX(F2;A2:A6;C2:C6) ищет F2 в A2:A6 и возвращает значение из той же строки C2:C6. Текст при отсутствии совпадения, несколько столбцов сразу, поиск влево, последнее совпадение, приблизительный поиск и подстановочные знаки.

Каждая таблица на этой странице живая: измените число или формулу, и она пересчитается.

=ПРОСМОТРX(F2;A2:A6;C2:C6) (по-английски XLOOKUP) ищет значение из F2 в A2:A6 и возвращает значение из той же строки C2:C6. По умолчанию она ищет точное совпадение, столбец поиска может стоять где угодно, и ей нужен Excel 2021 или Microsoft 365 (в Excel 2019 и более старых используйте ИНДЕКС и ПОИСКПОЗ). Введите в F2 другой товар. Таблицы на этой странице показывают английскую запись, но формулы в них можно вводить и по-русски, с точкой с запятой.

Цена товара
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Bread$2.40
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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_mode0 точное, -1 точное или следующее меньшее, 1 точное или следующее большее, 2 подстановочные знаки.0
search_mode1 с первого до последнего, -1 с последнего до первого, 2 и -2 двоичный поиск по отсортированным данным.1

Обязательны только первые три. Чтобы пропустить необязательный аргумент и задать следующий, оставьте пустое место между разделителями: =ПРОСМОТРX(F2;A2:A6;C2:C6;;0;-1) задаёт search_mode и оставляет if_not_found по умолчанию.

Несколько столбцов сразу

Дайте ПРОСМОТРX диапазон результата шириной в несколько столбцов, и вернётся вся строка. Результат займёт ячейки рядом с формулой.

Все поля одного товара
B8
ABCD
1ProductCategoryPriceStock
2AppleFruit$1.2040
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
7Look forCarrot
8ResultVegetable$0.8060
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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, чего ВПР сделать не может. Четвёртый аргумент говорит, что показать, когда ни один товар не стоит столько.

Какой товар стоит столько?
G2
ABCDEFG
1ProductCategoryPriceStockPriceProduct
2AppleFruit$1.2040$2.40Bread
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТРX(F2;C2:C6;A2:A6;"No product")

$2.40 возвращает Bread. Замените F2 на 3, и G2 покажет «No product» вместо #Н/Д. "" в четвёртом аргументе показывает ячейку, которая выглядит пустой. if_not_found покрывает только «не найдено»: диапазон результата неверной высоты по-прежнему даёт #ЗНАЧ!, и это именно то, что нужно увидеть.

Найти последнее совпадение

ПРОСМОТРX возвращает первое совпадение сверху. Задайте шестому аргументу, search_mode, значение -1, и поиск пойдёт снизу, так что функция вернёт последнее совпадение: последний заказ, самую свежую цену, последний статус.

Первый и последний заказ клиента
G2
ABCDEFG
1DateCustomerAmountCustomerFirstLast
22026-03-02Ben120Ben12060
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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 возвращает точное совпадение, а если его нет, следующее меньшее значение. Это правило для интервалов: уровень комиссии, налоговая ставка, оценка. В отличие от ВПР с ИСТИНА, таблицу не нужно сортировать. Интервалы ниже нарочно стоят вразнобой.

Ставка комиссии по продажам
F2
ABCDEF
1Sales fromRateRepSalesRate
250005%Ana7500%
300%Ben4,2003%
4100008%Cara5,0005%
510003%Dev12,5008%
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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).

Первый товар, название которого содержит текст
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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. Внутренняя выбирает строку по региону, внешняя выбирает из этой строки столбец месяца.

Продажи по региону и месяцу
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionSouth
7MonthFeb
8Sales3,600
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПРОСМОТР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"

Прайс-лист
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Kiwi
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: В G2 верните цену товара из F2 или текст Not found, если его нет в списке.

Практика: скидка по сумме заказа

Уровни скидки
E2
ABCDE
1Order fromDiscountOrderDiscount
2$00%$320
3$1005%
4$25010%
5$50015%
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: Каждая скидка действует от своей суммы заказа и выше. В 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 покажет #ПЕРЕНОС!.

Иллюстрация языков программирования Coddy

Учитесь программировать с Coddy

НАЧАТЬ