Какой тип сопоставления используется по умолчанию
Перейти к содержимому

Какой тип сопоставления используется по умолчанию

  • автор:

Поиск позиции элемента в списке с ПОИСКПОЗ (MATCH)

Давайте рассмотрим несколько полезных вариантов ее применения на практике.

Точный поиск

Классический сценарий — поиск точного текстового совпадения для нахождения позиции нужного нам текста или числа в списке:

ПОИСКПОЗ в Excel

Поиск первой или последней текстовой ячейки

Если в качестве искомого значения задать звездочку, то функция будет искать первую ячейку с текстом и выдавать её позицию. Для поиска последней текстовой ячейки можно изменить третий аргумент Режим_поиска с нуля на минус 1:

Поиск первого или последнего текста

Числа и пустые ячейки в этом случае игнорируются.

Поиск ближайшего числа или даты

Если последний аргумент задать равным 1 или -1, то можно реализовать поиск ближайшего наименьшего или наибольшего числа. Таблица при этом обязательно должна быть отсортирована по возрастанию или убыванию соответственно. В общем и целом, это чем-то похоже на интервальный просмотр у функции ВПР (VLOOKUP) , но там возможен только поиск ближайшего наименьшего, а здесь — есть выбор.

Например, нам нужно выбрать генератор из прайс-листа для расчетной мощности в 47 кВт. Если последний аргумент задать равным 1 и отсортировать таблицу по возрастанию, то мы найдем ближайшую наименьшую по мощности модель (Зверь):

ПОИСКПОЗ поиск ближайшего наименьшего числа

Если же третий аргумент равен -1 и таблица отсортирована по убыванию, то мы найдем ближайшую более мощную модель (Бомба):

ПОИСКПОЗ поиск ближайшего наибольшего

Связка функций ПОИСКПОЗ и ИНДЕКС

Очень часто функция ПОИСКПОЗ используется в связке с другой крайне полезной функцией — ИНДЕКС (INDEX) , которая умеет извлекать данные из диапазона по номеру строки-столбца, реализуя, фактически, «левый ВПР».

Так, в предыдущем примере получить не номер, а название модели генератора можно очень легко:

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

Ну, и поскольку Excel внутри хранит и обрабатывает даты как числа, то подобный подход на 100% работает и с датами. Например, мы можем легко определить на каком этапе сейчас находится наш проект:

ПОИСКПОЗ и даты

Принципиальное ограничение функции ПОИСКПОЗ состоит в том, что она умеет искать только в одномерных массивах (т.е. строчке или столбце), но никто не запрещает использовать сразу два ПОИСКПОЗа вложенных в ИНДЕКС, чтобы реализовать двумерный поиск по строке и столбцу одновременно:

Двумерный поиск с ПОИСКПОЗ и ИНДЕКС

Ссылки по теме

  • 5 вариантов применения функции ИНДЕКС (INDEX)
  • Интервальный просмотр с помощью функции ВПР (VLOOKUP)
  • Поискпоследнего значения в строке или столбце
  • Как создать авторастягивающийся диапазон с автоподстройкой размеров

Функция ПОИСКПОЗ

Совет: Попробуйте использовать новую функцию XMATCH , улучшенную версию MATCH, которая работает в любом направлении и возвращает точные совпадения по умолчанию, что делает ее проще и удобнее в использовании, чем ее предшественник.

Функция ПОИСКПОЗ выполняет поиск указанного элемента в диапазоне ячеек и возвращает относительную позицию этого элемента в диапазоне. Например, если диапазон A1:A3 содержит значения 5, 25 и 38, то формула =ПОИСКПОЗ(25;A1:A3;0) возвращает значение 2, поскольку элемент 25 является вторым в диапазоне.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Совет: Функцией ПОИСКПОЗ следует пользоваться вместо одной из функций ПРОСМОТР, когда требуется найти позицию элемента в диапазоне, а не сам элемент. Например, функцию ПОИСКПОЗ можно использовать для передачи значения аргумента номер_строки функции ИНДЕКС.

Синтаксис

Аргументы функции ПОИСКПОЗ описаны ниже.

    Искомое_значение. Обязательный аргумент. Значение, которое сопоставляется со значениями в аргументе просматриваемый_массив. Например, при поиске номера в телефонной книге имя абонента указывается в качестве искомого значения, а нужным значением будет номер телефона.

Тип_сопоставления

Функция ПОИСКПОЗ находит наибольшее значение, которое меньше или равно значению аргумента искомое_значение. Просматриваемый_массив должен быть упорядочен по возрастанию: . -2, -1, 0, 1, 2, . A-Z, ЛОЖЬ, ИСТИНА.

Функция ПОИСКПОЗ находит первое значение, равное аргументу искомое_значение. Просматриваемый_массив может быть не упорядочен.

Функция ПОИСКПОЗ находит наименьшее значение, которое больше или равно значению аргумента искомое_значение. Просматриваемый_массив должен быть упорядочен по убыванию: ИСТИНА, ЛОЖЬ, Z — A, . 2, 1, 0, -1, -2, . и т. д.

  • Функция ПОИСКПОЗ возвращает не само значение, а его позицию в аргументе просматриваемый_массив. Например, функция ПОИСКПОЗ(«б»;а»;»б»;»в«>;0) возвращает 2 — относительную позицию буквы «б» в массиве .
  • Функция ПОИСКПОЗ не различает регистры при сопоставлении текста.
  • Если функция ПОИСКПОЗ не находит соответствующего значения, возвращается значение ошибки #Н/Д.
  • Если тип_сопоставления равен 0 и искомое_значение является текстом, то искомое_значение может содержать подстановочные знаки: звездочку (*) и вопросительный знак (?). Звездочка соответствует любой последовательности знаков, вопросительный знак — любому одиночному знаку. Если нужно найти сам вопросительный знак или звездочку, перед ними следует ввести знак тильды (~).

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. При необходимости измените ширину столбцов, чтобы видеть все данные.

Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel

Функция ПОИСКПОЗ в Excel используется для поиска точного совпадения или ближайшего (меньшего или большего заданному в зависимости от типа сопоставления, указанного в качестве аргумента) значения заданному в массиве или диапазоне ячеек и возвращает номер позиции найденного элемента.

Примеры использования функции ПОИСКПОЗ в Excel

Например, имеем последовательный ряд чисел от 1 до 10, записанных в ячейках B1:B10. Функция =ПОИСКПОЗ(3;B1:B10;0) вернет число 3, поскольку искомое значение находится в ячейке B3, которая является третьей от точки отсчета (ячейки B1).

Данная функция удобна для использования в случаях, когда требуется вернуть не само значение, содержащееся в искомой ячейке, а ее координату относительно рассматриваемого диапазона. В случае использования для констант массивов, которые могут быть представлены как массивы элементов «ключ» — «значение», функция ПОИСКПОЗ возвращает значение ключа, который явно не указан.

Например, массив содержит элементы, которые можно представить как: 1 – «виноград», 2 – «яблоко», 3 – «груша», 4 – «слива», где 1, 2, 3, 4 – ключи, а названия фруктов – значения. Тогда функция =ПОИСКПОЗ(«яблоко»;;0) вернет значение 2, являющееся ключом второго элемента. Отсчет выполняется не с 0 (нуля), как это реализовано во многих языках программирования при работе с массивами, а с 1.

Функция ПОИСКПОЗ редко используется самостоятельно. Ее целесообразно применять в связке с другими функциями, например, ИНДЕКС.

Формула для поиска неточного совпадения текста в Excel

Пример 1. Найти позицию первого частичного совпадения строки в диапазоне ячеек, хранящих текстовые значения.

Вид исходной таблицы данных:

Пример 1.

Для нахождения позиции текстовой строки в таблице используем следующую формулу:

  • D2&»*» – искомое значение, состоящее и фамилии, указанной в ячейке B2, и любого количества других символов (“*”);
  • B:B – ссылка на столбец B:B, в котором выполняется поиск;
  • 0 – поиск точного совпадения.

Из полученного значения вычитается единица для совпадения результата с id записи в таблице.

ПОИСКПОЗ.

Сравнение двух таблиц в Excel на наличие несовпадений значений

Пример 2. В Excel хранятся две таблицы, которые на первый взгляд кажутся одинаковыми. Было решено сравнить по одному однотипному столбцу этих таблиц на наличие несовпадений. Реализовать способ сравнения двух диапазонов ячеек.

Вид таблицы данных:

Пример 2.

Для сравнения значений, находящихся в столбце B:B со значениями из столбца A:A используем следующую формулу массива (CTRL+SHIFT+ENTER):

Функция ПОИСКПОЗ выполняет поиск логического значения ИСТИНА в массиве логических значений, возвращаемых функцией СОВПАД (сравнивает каждый элемент диапазона A2:A12 со значением, хранящимся в ячейке B2, и возвращает массив результатов сравнения). Если функция ПОИСКПОЗ нашла значение ИСТИНА, будет возвращена позиция его первого вхождения в массив. Функция ЕНД возвратит значение ЛОЖЬ, если она не принимает значение ошибки #Н/Д в качестве аргумента. В этом случае функция ЕСЛИ вернет текстовую строку «есть», иначе – «нет».

Чтобы вычислить остальные значения «протянем» формулу из ячейки C2 вниз для использования функции автозаполнения. В результате получим:

сравнения значений.

Как видно, третьи элементы списков не совпадают.

Поиск ближайшего большего знания в диапазоне чисел Excel

Пример 3. Найти ближайшее меньшее числу 22 в диапазоне чисел, хранящихся в столбце таблицы Excel.

Вид исходной таблицы данных:

Пример 3.

Для поиска ближайшего большего значения заданному во всем столбце A:A (числовой ряд может пополняться новыми значениями) используем формулу массива (CTRL+SHIFT+ENTER):

Функция ПОИСКПОЗ возвращает позицию элемента в столбце A:A, имеющего максимальное значение среди чисел, которые больше числа, указанного в ячейке B2. Функция ИНДЕКС возвращает значение, хранящееся в найденной ячейке.

поиск ближайшего большего значения.

Для поиска ближайшего меньшего значения достаточно лишь немного изменить данную формулу и ее следует также ввести как массив (CTRL+SHIFT+ENTER):

поиск ближайшего меньшего.

Особенности использования функции ПОИСКПОЗ в Excel

Функция имеет следующую синтаксическую запись:

=ПОИСКПОЗ( искомое_значение;просматриваемый_массив; [тип_сопоставления])

  • искомое_значение – обязательный аргумент, принимающий текстовые, числовые значения, а также данные логического и ссылочного типов, который используется в качестве критерия поиска (для сопоставления величин или нахождения точного совпадения);
  • просматриваемый_массив – обязательный аргумент, принимающий данные ссылочного типа (ссылки на диапазон ячеек) или константу массива, в которых выполняется поиск позиции элемента согласно критерию, заданному первым аргументом функции;
  • [тип_сопоставления] – необязательный для заполнения аргумент в виде числового значения, определяющего способ поиска в диапазоне ячеек или массиве. Может принимать следующие значения:
  1. -1 – поиск наименьшего ближайшего значения заданному аргументом искомое_значение в упорядоченном по убыванию массиве или диапазоне ячеек.
  2. 0 – (по умолчанию) поиск первого значения в массиве или диапазоне ячеек (не обязательно упорядоченном), которое полностью совпадает со значением, переданным в качестве первого аргумента.
  3. 1 – Поиск наибольшего ближайшего значения заданному первым аргументом в упорядоченном по возрастанию массиве или диапазоне ячеек.
  1. Если в качестве аргумента искомое_значение была передана текстовая строка, функция ПОИСКПОЗ вернет позицию элемента в массиве (если такой существует) без учета регистра символов. Например, строки «МоСкВа» и «москва» являются равнозначными. Для различения регистров можно дополнительно использовать функцию СОВПАД.
  2. Если поиск с использованием рассматриваемой функции не дал результатов, будет возвращен код ошибки #Н/Д.
  3. Если аргумент [тип_сопоставления] явно не указан или принимает число 0, для поиска частичного совпадения текстовых значений могут быть использованы подстановочные знаки («?» — замена одного любого символа, «*» — замена любого количества символов).
  4. Если в объекте данных, переданном в качестве аргумента просматриваемый_массив, содержится два и больше элементов, соответствующих искомому значению, будет возвращена позиция первого вхождения такого элемента.
  • Excel Formula Examples
  • Создать таблицу
  • Форматирование
  • Функции Excel
  • Формулы и диапазоны
  • Фильтр и сортировка
  • Диаграммы и графики
  • Сводные таблицы
  • Печать документов
  • Базы данных и XML
  • Возможности Excel
  • Настройки параметры
  • Уроки Excel
  • Макросы VBA
  • Скачать примеры

Функция ПРОСМОТРX

Используйте функцию XLOOKUP для поиска объектов в таблице или диапазоне по строкам. Например, найдите цену автомобильной части по номеру части или найдите имя сотрудника по идентификатору сотрудника. С помощью XLOOKUP можно искать в одном столбце условие поиска и возвращать результат из той же строки в другом столбце независимо от того, на какой стороне находится возвращаемый столбец.

Примечание: XLOOKUP недоступна в Excel 2016 и Excel 2019, однако вы можете столкнуться с ситуацией использования книги в Excel 2016 или Excel 2019 с функцией XLOOKUP в ней, созданной другим пользователем с помощью более новой версии Excel.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Синтаксис

Функция XLOOKUP выполняет поиск диапазона или массива, а затем возвращает элемент, соответствующий первому совпадению, который она находит. Если совпадения не существует, XLOOKUP может вернуть ближайшее (приблизительное) соответствие.

=ПРОСМОТРХ(искомое_значение; просматриваемый_массив; возращаемый_массив; [если_ничего_не_найдено]; [режим_сопоставления]; [режим_поиска])

искомое_значение

Значение для поиска

*Если этот параметр опущен, функция XLOOKUP возвращает пустые ячейки, которые он находит в lookup_array.

просматриваемый_массив

Массив или диапазон для поиска

return_array

Возвращаемый массив или диапазон

[if_not_found]

Если допустимое совпадение не найдено, верните текст [if_not_found], который вы указали.

Если допустимое совпадение не найдено и [if_not_found] отсутствует, возвращается #N/A .

[режим_сопоставления]

Укажите тип сопоставления:

0 — точное совпадение. Если ни один из них не найден, верните #N/A. Этот параметр используется по умолчанию.

-1 — точное совпадение. Если ни один элемент не найден, верните следующий элемент меньшего размера.

1 — точное совпадение. Если ни один элемент не найден, верните следующий более крупный элемент.

2 — совпадение с использованием особого значения подстановочных знаков: *, ?, ~.

[режим_поиска]

Укажите используемый режим поиска:

1. Выполните поиск, начиная с первого элемента. Этот параметр используется по умолчанию.

-1 — выполнение обратного поиска, начиная с последнего элемента.

2. Выполните двоичный поиск, который зависит от lookup_array сортировки по возрастанию . Если сортировка не выполнена, будут возвращены недопустимые результаты.

-2 — выполнение двоичного поиска на основе сортировки просматриваемого_массива по убыванию. Если сортировка не выполнена, будут возвращены недопустимые результаты.

Примеры

В примере 1 используется XLOOKUP для поиска названия страны в диапазоне, а затем возврата ее телефонного кода страны. Он включает аргументы lookup_value (ячейка F2), lookup_array (диапазон B2:B11) и return_array (диапазон D2:D11). Он не включает аргумент match_mode , так как по умолчанию XLOOKUP создает точное совпадение.

Пример функции XLOOKUP, используемой для возврата имени сотрудника и отдела на основе идентификатора сотрудника. Формула = XLOOKUP(B2;B5:B14;C5:C14).

Примечание: XLOOKUP использует массив подстановки и возвращаемый массив, тогда как ВПР использует один массив таблиц, за которым следует номер индекса столбца. Эквивалентная формула ВПР в этом случае будет: =VLOOKUP(F2;B2:D11;3;FALSE)

В примере 2 выполняется поиск сведений о сотрудниках на основе идентификатора сотрудника. В отличие от ВПР, XLOOKUP может возвращать массив с несколькими элементами, поэтому одна формула может возвращать имя сотрудника и отдел из ячеек C5:D14.

Пример функции XLOOKUP, используемой для возврата имени сотрудника и отдела на основе идентификатора сотрудника. Формула: =XLOOKUP(B2;B5:B14;C5:D14;0;1)

В примере 3 к предыдущему примеру добавляется аргумент if_not_found .

Пример функции XLOOKUP, используемой для возврата имени сотрудника и отдела на основе идентификатора сотрудника с аргументом if_not_found. Формула =XLOOKUP(B2;B5:B14;C5:D14;0;1;

В примере 4 в столбце C выполняется поиск личного дохода, указанного в ячейке E2, и поиск соответствующей налоговой ставки в столбце B. Он задает аргумент if_not_found для возврата 0 (ноль), если ничего не найдено. Аргумент match_mode имеет значение 1 , что означает, что функция будет искать точное совпадение, а если не удается найти его, она возвращает следующий более крупный элемент. Наконец, аргумент search_mode имеет значение 1, что означает, что функция будет выполнять поиск от первого элемента к последнему.

Изображение функции XLOOKUP, используемой для возврата налоговой ставки на основе максимального дохода. Это приблизительное совпадение. Формула: =XLOOKUP(E2;C2:C7;B2:B7;1;1)

Примечание: Lookup_array столбец XARRAY находится справа от return_array столбца, тогда как ВПР может смотреть только слева направо.

Пример 5 использует вложенную функцию XLOOKUP для выполнения вертикального и горизонтального совпадения. Сначала выполняется поиск валовой прибыли в столбце B, затем выполняется поиск Qtr1 в верхней строке таблицы (диапазон C5:F5) и, наконец, возвращается значение на пересечении двух. Это аналогично совместному использованию функций INDEX и MATCH .

Совет: Для замены функции HLOOKUP можно также использовать XLOOKUP.

Изображение функции XLOOKUP, используемой для возврата горизонтальных данных из таблицы путем вложения 2 XLOOKUP. Формула: =XLOOKUP(D2,$B 6:$B 17;XLOOKUP($C 3;$C 5:$G 5;$C 6:$G 17))

Примечание: Формула в ячейках D3:F3: =XLOOKUP(D2,$B 6:$B 17;XLOOKUP($C 3,$C 5:$G 5;$C 6:$G 17)).).

Пример 6 использует функцию СУММ и две вложенные функции XLOOKUP для суммирования всех значений между двумя диапазонами. В этом случае мы хотим суммировать значения для винограда, бананов и включить груши, которые находятся между ними.

Использование XLOOKUP с СУММ для суммирования диапазона значений, которые попадают между двумя выбранными значениями

Формула в ячейке E3: =SUM(XLOOKUP(B3;B6:B10;E6:E10):XLOOKUP(C3;B6:B10;E6:E10))

Как это работает? XLOOKUP возвращает диапазон, поэтому при вычислении формула выглядит следующим образом: =SUM($E$7:$E$9) . Вы можете увидеть, как это работает самостоятельно, выбрав ячейку с формулой XLOOKUP, аналогичную этой, а затем выберите Формулы > Аудит формул > Вычислить формулу, а затем выберите Оценить, чтобы выполнить вычисление.

Примечание: Благодаря Microsoft Excel MVP , Билл Елен, за то, что он предложил этот пример.

См. также

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *