
Резюме
Функция Excel XMATCH выполняет поиск и возвращает позицию в вертикальном или горизонтальном диапазонах. Это более надежный и гибкий преемник функции ПОИСКПОЗ. XMATCH поддерживает приблизительное и точное соответствие, обратный поиск и символы подстановки (*?) Для частичных совпадений.
Цель
Получить позицию элемента в списке или таблицеВозвращаемое значение
Числовая позиция в поисковом массивеСинтаксис
= XMATCH (lookup_value, lookup_array, (match_mode), (search_mode))Аргументы
- lookup_value - значение поиска.
- lookup_array - массив или диапазон для поиска.
- match_mode - (необязательно) 0 = точное совпадение (по умолчанию), -1 = точное совпадение или следующее меньшее, 1 = точное совпадение или следующее большее, 2 = совпадение с подстановочными знаками.
- search_mode - (необязательно) 1 = поиск с первого (по умолчанию), -1 = поиск с последнего, 2 = двоичный поиск по возрастанию, -2 = двоичный поиск по убыванию.
Версия
Excel 365Примечания по использованию
Функция Excel XMATCH выполняет поиск и возвращает позицию. XMATCH может выполнять поиск в вертикальном или горизонтальном диапазонах и призван стать более гибким и мощным преемником функции MATCH. XMATCH поддерживает как приблизительные, так и точные совпадения, а также символы подстановки (*?) Для частичных совпадений. Как и функция XLOOKUP, XMATCH может искать данные, начиная с первого или последнего значения (т. Е. Обратный поиск). Наконец, XMATCH может выполнять двоичный поиск, который специально оптимизирован для скорости. Подробнее см. Тип соответствия и режим поиска ниже.
XMATCH против MATCH
В некоторых случаях XMATCH может быть заменой функции ПОИСКПОЗ. Например, для точных совпадений синтаксис идентичен:
=MATCH(lookup, range, 0) // exact match =XMATCH(lookup, range, 0) // exact match
Однако для приблизительных совпадений поведение отличается, если для типа соответствия установлено значение 1:
=MATCH(lookup, range, 1) // exact match or next smallest =XMATCH(lookup, range, 1) // exact match or next *largest*
Кроме того, XMATCH допускает -1 для типа соответствия, что недоступно для MATCH:
=XMATCH(lookup, range, -1) // exact match or next smallest
Примечание: функция ПОИСКПОЗ вообще не предлагает аргумент режима поиска.
Тип соответствия
Третий аргумент для XMATCH - match_type . Это необязательный аргумент, который управляет поведением соответствия следующим образом:
Тип соответствия | Поведение |
---|---|
0 (по умолчанию) | Полное совпадение. Если совпадений нет, вернет # N / A. |
-1 | Точное совпадение или следующий меньший элемент. |
1 | Точное совпадение или следующий более крупный элемент. |
2 | Подстановочный знак (*,?, ~) |
Режим поиска
Четвертый аргумент для XMATCH - search_mode . Это необязательный аргумент, который управляет поведением поиска следующим образом:
Режим поиска | Поведение |
---|---|
1 (по умолчанию) | Искать с первого значения |
-1 | Искать с последнего значения (в обратном направлении) |
2 | Значения двоичного поиска, отсортированные в порядке возрастания |
-2 | Значения двоичного поиска, отсортированные по убыванию |
Двоичный поиск выполняется очень быстро, но позаботьтесь о сортировке данных по мере необходимости. Если данные не отсортированы должным образом, двоичный поиск может вернуть недопустимые результаты, которые выглядят совершенно нормально.
Пример # 1 - точное соответствие
В показанном примере XMATCH используется для извлечения позиции «Марса» в списке планет в диапазоне B6: B14. Формула в G6:
=XMATCH(G5,B6:B14) // returns 4
Обратите внимание, что по умолчанию XMATCH имеет точное соответствие. Если "Mars" G5 был написан с ошибкой "Marz", XMATCH вернет # N / A.
Пример # 2 - поведение при совпадении
В приведенном ниже примере показано поведение режима сопоставления со значением поиска 3,1 в E4 и значениями поиска в B5: B11.
E6=XMATCH(E4,B5:B11) // returns #N/A E7=XMATCH(E4,B5:B11,-1) // returns 3 E8=XMATCH(E4,B5:B11,1) // returns 4
Пример # 3 - ИНДЕКС и XMATCH
XMATCH можно использовать так же, как MATCH, с функцией INDEX. Чтобы получить диаметр Марса на основе исходного примера выше, формула:
=INDEX(C6:C14,XMATCH(G5,B6:B14)) / returns 6792
Заметки
- XMATCH может работать как с вертикальными, так и с горизонтальными массивами.
- XMATCH вернет # N / A, если значение поиска не найдено.