=ПОИСКПОЗX(E2;A2:A6) (по-английски XMATCH) возвращает позицию E2 в A2:A6: 1 для первой ячейки, 2 для второй. В отличие от ПОИСКПОЗ, она ищет точное совпадение, если не сказать иначе. ПОИСКПОЗX нужен Excel 2021 или Microsoft 365; в более старых версиях используйте ПОИСКПОЗ(E2;A2:A6;0). Таблицы на этой странице показывают английскую запись, но формулы в них можно вводить и по-русски, с точкой с запятой.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Look for | Position | |
| 2 | Apple | Fruit | $1.20 | Carrot | 3 | |
| 3 | Pear | Fruit | $1.50 | |||
| 4 | Carrot | Vegetable | $0.80 | |||
| 5 | Bread | Bakery | $2.40 | |||
| 6 | Milk | Dairy | $1.10 |
=ПОИСКПОЗX(E2;A2:A6)Carrot третий элемент, поэтому F2 показывает 3. Введите Kiwi, и функция вернёт #Н/Д (в таблице по-английски #N/A; таблицы здесь показывают ошибки под английскими именами). Как и любой поиск в Excel, она не учитывает регистр.
Синтаксис ПОИСКПОЗX
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
| Аргумент | Значения |
|---|---|
match_mode | 0 точное (по умолчанию), -1 точное или следующее меньшее, 1 точное или следующее большее, 2 совпадение с подстановочными знаками |
search_mode | 1 с первого элемента (по умолчанию), -1 с последнего элемента, 2 двоичный поиск по возрастанию, -2 двоичный поиск по убыванию |
Двоичные режимы быстрее на очень больших отсортированных списках и возвращают неверные позиции на неотсортированных. Остальные режимы работают с данными в любом порядке.
Следующее меньшее или большее без сортировки
match_mode 1 находит наименьшее значение, которое больше искомого или равно ему. Это ответ на вопрос «самая маленькая коробка, в которую влезет», даже когда размеры перечислены вразнобой. С ПОИСКПОЗ список пришлось бы отсортировать от большего к меньшему.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Box | Holds (liters) | Item (liters) | 18 | |
| 2 | S | 5 | Position | 4 | |
| 3 | XL | 50 | Box | L | |
| 4 | M | 12 | |||
| 5 | L | 25 |
=ПОИСКПОЗX(E1;B2:B5;1)18 литров вмещают размеры 25 и 50, меньший из них 25, это четвёртый элемент, коробка L. Замените E1 на 12, чтобы получить точное совпадение (M), или на 40, чтобы получить XL. match_mode -1 работает наоборот: наибольшее значение, которое меньше искомого или равно ему, правило для налоговых ставок и уровней комиссии. У ПРОСМОТРX есть те же два режима, и она сразу возвращает значение.
Поиск с последнего элемента
search_mode -1 начинает снизу, поэтому ПОИСКПОЗX возвращает позицию последнего совпадения. Позиции по-прежнему считаются от верха диапазона.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | 5 | |
| 3 | 2026-03-05 | Ana | 80 | Last date | 2026-03-20 | |
| 4 | 2026-03-09 | Ben | 45 | First position | 1 | |
| 5 | 2026-03-12 | Cara | 200 | |||
| 6 | 2026-03-20 | Ben | 60 | |||
| 7 | 2026-03-24 | Ana | 95 |
=ПОИСКПОЗX(F1;B2:B7;0;-1)Ben встречается на позициях 1, 3 и 5. Поиск сверху возвращает 1, поиск снизу 5, его заказ от 2026-03-20. До ПОИСКПОЗX для последней позиции требовался приём с массивом: =ПОИСКПОЗ(2;1/(B2:B7=F1)).
Подстановочным знакам нужен match_mode 2
С match_mode 2 знак * означает любые символы, а ? ровно один. В остальных режимах это обычные символы, тогда как ПОИСКПОЗ считает их подстановочными знаками всякий раз, когда тип сопоставления равен 0.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Pattern | Position | |
| 2 | Green tea | *coffee | 2 | |
| 3 | Iced coffee | ?lack* | 4 | |
| 4 | Coffee beans | |||
| 5 | Black tea | |||
| 6 | Orange juice |
=ПОИСКПОЗX(C2;A2:A6;2)*coffee (всё, что заканчивается на «coffee») совпадает с Iced coffee на позиции 2, а ?lack* совпадает с Black tea на позиции 4. Coffee beans не подходит под *coffee, потому что в конце шаблона нет *. Без match_mode 2 тот же шаблон ищется как обычный текст, поэтому в Excel это возвращает #Н/Д:
=XMATCH("*coffee", A2:A6) #N/A: no cell is literally "*coffee"
=XMATCH("*coffee", A2:A6, 2) 2
В русском Excel: =ПОИСКПОЗX("*coffee";A2:A6) и =ПОИСКПОЗX("*coffee";A2:A6;2).
ПОИСКПОЗX и ПОИСКПОЗ
| ПОИСКПОЗ | ПОИСКПОЗX | |
|---|---|---|
| По умолчанию, если режим не указан | Приблизительное (1), данные должны быть отсортированы | Точное |
| Следующее меньшее значение | 1, данные по возрастанию | -1, любой порядок |
| Следующее большее значение | -1, данные по убыванию | 1, любой порядок |
| Подстановочные знаки | Всегда включены при 0 | Только с match_mode 2 |
| Последнее совпадение | Нет | search_mode -1 |
| Версии | Все | Excel 2021 и Microsoft 365 |
Знаки перевёрнуты: -1 у ПОИСКПОЗ находит следующее большее значение, а -1 у ПОИСКПОЗX следующее меньшее. Переводя ПОИСКПОЗ(E2;A2:A6;0) в ПОИСКПОЗX, уберите 0; переводя приблизительную ПОИСКПОЗ, смените знак, и порядок сортировки перестанет иметь значение. Старая функция описана на странице ПОИСКПОЗ.
Практика: позиция последнего заказа
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | ||
| 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 |
Ваша очередь: В F2 верните позицию последнего заказа клиента из F1.
Часто задаваемые вопросы
Чем ПОИСКПОЗ отличается от ПОИСКПОЗX?
ПОИСКПОЗX по умолчанию ищет точное совпадение (ПОИСКПОЗ по умолчанию приблизительное), находит следующее меньшее или большее значение без сортировки данных, умеет искать с последнего элемента вверх и считает * и ? подстановочными знаками, только если попросить об этом через match_mode 2. Ей нужен Excel 2021 или Microsoft 365.
Как найти последнее вхождение с ПОИСКПОЗX?
Задайте search_mode, четвёртому аргументу, значение -1: =ПОИСКПОЗX("Ben";B2:B7;0;-1) возвращает позицию последнего Ben в B2:B7. Позиции по-прежнему считаются от верха диапазона.
Что возвращает ПОИСКПОЗX, если ничего не совпало?
#Н/Д, как и ПОИСКПОЗ. Оберните её в ЕСНД, чтобы показать что-то другое: =ЕСНД(ПОИСКПОЗX(E2;A2:A6);"Not in list").
Может ли ПОИСКПОЗX заменить ПОИСКПОЗ внутри ИНДЕКС?
Да. =ИНДЕКС(C2:C6;ПОИСКПОЗX(E2;A2:A6)) работает как ИНДЕКС с ПОИСКПОЗ(E2;A2:A6;0), и забыть 0 уже нельзя. Используйте ПОИСКПОЗ, когда файл должен открываться в Excel 2019 или старше.