Совет
Попробуйте использовать новую функцию ПОИСКПОЗX , улучшенную версию функции ПОИСКПОЗ, которая работает в любом направлении и по умолчанию возвращает точные совпадения, что делает ее проще и удобнее в использовании, чем предшественницу.
Функция ПОИСКПОЗ выполняет поиск указанного элемента в диапазоне ячеек и возвращает относительную позицию этого элемента в диапазоне. Например, если диапазон A1:A3 содержит значения 5, 25 и 38, то формула =ПОИСКПОЗ(25;A1:A3;0) возвращает значение 2, поскольку элемент 25 является вторым в диапазоне.
Совет
Функцией ПОИСКПОЗ следует пользоваться вместо одной из функций ПРОСМОТР, когда требуется найти позицию элемента в диапазоне, а не сам элемент. Например, функцию ПОИСКПОЗ можно использовать для передачи значения row_num аргумента функции ИНДЕКС .
Синтаксис
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])
Аргументы функции ПОИСКПОЗ описаны ниже.
lookup_value Обязательно. Значение, которое сопоставляется в lookup_array. Например, при поиске номера в телефонной книге имя абонента указывается в качестве искомого значения, а нужным значением будет номер телефона.
Аргумент искомое_значение может быть значением (числом, текстом или логическим значением) или ссылкой на ячейку, содержащую такое значение.
lookup_array Обязательно. Диапазон ячеек, в которых производится поиск.
match_type Необязательно. Число -1, 0 или 1. Аргумент match_type определяет, каким образом в Excel lookup_value сопоставляются значения в lookup_array. По умолчанию в качестве этого аргумента используется значение 1.
В приведенной ниже таблице описано, как функция находит значения в зависимости от аргумента тип_сопоставления.
| Тип_сопоставления | Поведение |
|---|---|
| 1 или опущен | Функция ПОИСКПОЗ находит наибольшее значение, которое меньше или равно lookup_value. Значения в аргументе lookup_array должны быть расположены в возрастающем порядке, например: ...-2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА. |
| 0 | Функция ПОИСКПОЗ находит первое значение, равное lookup_value. Аргумент lookup_array имеет произвольный порядок. |
| -1 | Функция ПОИСКПОЗ находит наименьшее значение, которое больше или равноlookup_value. Значения в аргументе lookup_array должны быть расположены в порядке убывания, например: ИСТИНА, ЛОЖЬ, Я-ЗА, ... 2, 1, 0, -1, -2, ..., и т. д. |
- Функция ПОИСКПОЗ возвращает не само значение, а его позицию в lookup_array. Например, функция ПОИСКПОЗ("б";{"а";"б";"в"};0) возвращает 2 — относительную позицию буквы "б" в массиве {"а";"б";"в"}.
- Функция ПОИСКПОЗ не различает регистры при сопоставлении текста.
- Если функция ПОИСКПОЗ не находит соответствующего значения, возвращается значение ошибки #Н/Д.
- Если match_type равно 0 и lookup_value является текстовой строкой, в аргументе lookup_value можно использовать подстановочные знаки — вопросительный знак (?) и звездочку (*). Звездочка соответствует любой последовательности знаков, вопросительный знак — любому одиночному знаку. Если требуется найти сам вопросительный знак или звездочку, перед ними следует ввести знак тильды (~).
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
| Продукт | Количество | |
|---|---|---|
| Бананы | 25 | |
| Апельсины | 38 | |
| Яблоки | 40 | |
| Груши | 41 | |
| Формула | Описание | Результат |
| =ПОИСКПОЗ(39;B2:B5,1;0) | Так как точного соответствия нет, возвращается позиция ближайшего меньшего элемента (38) в диапазоне B2:B5. | 2 |
| =ПОИСКПОЗ(41;B2:B5;0) | Позиция значения 41 в диапазоне B2:B5 | 4 |
| =ПОИСКПОЗ(40;B2:B5;-1) | Возвращает сообщение об ошибке, так как диапазон B2:B5 упорядочен не по убыванию. | #Н/Д |