Menu

ПОИСКПОЗ в Excel (эксель): как найти позицию значения

=ПОИСКПОЗ(E2;A2:A6;0) возвращает позицию E2 в A2:A6: 4, если это четвёртый элемент. Типы сопоставления 0, 1 и -1, подстановочные знаки, поиск с учётом регистра и проверка, есть ли значение в списке.

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

=ПОИСКПОЗ(E2;A2:A6;0) (по-английски MATCH) возвращает позицию значения из E2 в A2:A6: 1 для первой ячейки, 2 для второй и так далее. 0 требует точного совпадения. ПОИСКПОЗ возвращает число, а не само значение, поэтому её обычно используют вместе с ИНДЕКС. Таблицы на этой странице показывают английскую запись, но формулы в них можно вводить и по-русски, с точкой с запятой.

Позиция товара в списке
F2
ABCDEF
1ProductCategoryPriceLook forPosition
2AppleFruit$1.20Bread4
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПОИСКПОЗ(E2;A2:A6;0)

Bread четвёртая ячейка A2:A6, поэтому F2 показывает 4. Отсчёт начинается с первой ячейки диапазона, а не со строки 1 листа: замените диапазон на A1:A6, и ответ станет 5. Введите Kiwi в E2, и ПОИСКПОЗ вернёт #Н/Д (в таблице по-английски #N/A; таблицы здесь показывают ошибки под английскими именами).

Синтаксис ПОИСКПОЗ и типы сопоставления

=MATCH(lookup_value, lookup_array, [match_type])
match_type (тип_сопоставления)НаходитСписок должен быть
0Первое значение, точно равное lookup_value. Для текста допустимы подстановочные знаки.в любом порядке
1 или пропущенНаибольшее значение, которое меньше lookup_value или равно ему.отсортирован по возрастанию
-1Наименьшее значение, которое больше lookup_value или равно ему.отсортирован по убыванию

По умолчанию стоит 1, а не 0. ПОИСКПОЗ без третьего аргумента на неотсортированном списке имён не жалуется: она возвращает позицию, которая может относиться к другой строке. Пишите 0 каждый раз, когда ищете текст, коды или идентификаторы.

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

С типом сопоставления 1 ПОИСКПОЗ отвечает на вопрос «какой интервал»: это позиция последнего порога, которого значение достигло. Здесь балл 75 прошёл 0, 60 и 70, поэтому он в интервале 3, оценка C.

Интервал балла
E2
ABCDEF
1Min scoreGradeScoreBandGrade
20F753C
360D591F
470C905A
580B1005A
690A
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПОИСКПОЗ(D2;$A$2:$A$6;1)

59 всё ещё ниже 60, поэтому это интервал 1 (F). 90 точно совпадает с последним порогом, а 100 выше него, поэтому оба попадают в интервал 5 (A). Пороги должны идти по возрастанию: именно это позволяет ПОИСКПОЗ остановиться в нужном месте.

Тип сопоставления -1 это зеркальный вариант для списка, отсортированного от большего к меньшему. Он возвращает позицию наименьшего значения, которое всё ещё больше искомого или равно ему: если в столбце размеры {50;25;12;5}, =ПОИСКПОЗ(18;D2:D5;-1) возвращает 2, размер 25, наименьший, в который помещается 18.

Подстановочные знаки и регистр

ПОИСКПОЗ не учитывает регистр, а с типом сопоставления 0 принимает подстановочные знаки * (любые символы) и ? (ровно один символ). Для поиска с учётом регистра сравните список функцией СОВПАД (EXACT) и ищите первое ИСТИНА.

Три способа найти текст
E1
ABCDE
1ProductCategoryPriceStarts with "C"3
2AppleFruit$1.20Lower case "milk"5
3PearFruit$1.50Exactly "milk"#N/A
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ПОИСКПОЗ("C*";A2:A6;0)

"C*" совпадает с Carrot, позиция 3. "milk" находит Milk на позиции 5, потому что регистр не учитывается. Вариант с СОВПАД сравнивает каждое название с «milk» с учётом регистра, не находит ни одного ИСТИНА и возвращает #Н/Д. Замените A6 на milk, и формула вернёт 5. В Excel 2019 и старше подтверждайте формулу с СОВПАД через Ctrl+Shift+Enter (Cmd+Shift+Enter на Mac); в Excel 2021 и Microsoft 365 достаточно Enter. Тильда делает подстановочный знак обычным символом: "~*" ищет настоящую звёздочку.

Есть ли значение в списке

ПОИСКПОЗ возвращает число, когда находит значение, и #Н/Д, когда не находит. ЕЧИСЛО превращает это в ИСТИНА или ЛОЖЬ, и получается быстрая проверка «есть ли это в списке».

Какие заказанные товары есть на складе?
B2
ABCD
1OrderedIn stock?In stock
2PearYesApple
3KiwiNoPear
4MilkYesBread
5PlumNoMilk
6BreadYes
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;$D$2:$D$5;0));"Yes";"No")

Pear, Milk и Bread есть в D2:D5, поэтому показывают Yes. Kiwi и Plum показывают No. В русском Excel формула в B2 пишется =ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;$D$2:$D$5;0));"Yes";"No"). СЧЁТЕСЛИ($D$2:$D$5;A2)>0 даёт тот же ответ; ПОИСКПОЗ останавливается на первом совпадении, СЧЁТЕСЛИ считает все.

ПОИСКПОЗ, ПОИСКПОЗX и ИНДЕКС

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

Практика: позиция сотрудника

Список команды
F2
ABCDEF
1NameTeamStart yearNamePosition
2AnaSales2019Dev
3BenSupport2021
4CaraSales2018
5DevFinance2022
6EliSupport2020
7FayFinance2023
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: В F2 верните позицию имени из E2 в списке столбца A.

Часто задаваемые вопросы

Что возвращает ПОИСКПОЗ в Excel?

Позицию, а не значение: =ПОИСКПОЗ("Bread";A2:A6;0) возвращает 4, когда Bread четвёртая ячейка A2:A6. Используйте её вместе с ИНДЕКС, чтобы получить значение на этой позиции из другого столбца.

Чем отличаются типы сопоставления 0, 1 и -1?

0 находит точное совпадение в любом порядке. 1 (по умолчанию) находит наибольшее значение, которое меньше искомого или равно ему, и требует списка, отсортированного по возрастанию. -1 находит наименьшее значение, которое больше искомого или равно ему, и требует списка, отсортированного по убыванию.

Учитывает ли ПОИСКПОЗ регистр?

Нет. =ПОИСКПОЗ("milk";A2:A6;0) находит Milk. Для поиска с учётом регистра используйте =ПОИСКПОЗ(ИСТИНА;СОВПАД(A2:A6;"milk");0), а в Excel 2019 и старше вводите её через Ctrl+Shift+Enter (Cmd+Shift+Enter на Mac).

Как проверить через ПОИСКПОЗ, есть ли значение в списке?

ПОИСКПОЗ возвращает #Н/Д, когда значения нет, поэтому проверьте, вернула ли она число: =ЕЧИСЛО(ПОИСКПОЗ(A2;$D$2:$D$5;0)) даёт ИСТИНА или ЛОЖЬ. Оберните в ЕСЛИ, чтобы показать свой текст.

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

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

НАЧАТЬ