Функция Excel XMATCH с примерами формул

  • Поделись Этим
Michael Brown

В учебном пособии представлена новая функция Excel XMATCH и показано, чем она лучше MATCH для решения нескольких распространенных задач.

В Excel 365 была добавлена функция XMATCH, которая заменила функцию MATCH. Но прежде чем приступить к обновлению существующих формул, было бы разумно понять все преимущества новой функции и ее отличия от старой.

В целом, функция XMATCH - это то же самое, что и MATCH, но более гибкая и надежная. Она может искать в вертикальных и горизонтальных массивах, искать от первого к последнему или от последнего к первому, находить точные, приблизительные и частичные совпадения, а также использовать более быстрый алгоритм двоичного поиска.

    Функция Excel XMATCH

    Функция XMATCH в Excel возвращает относительное положение значения в массиве или диапазоне ячеек.

    Он имеет следующий синтаксис:

    XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

    Где:

    Поиск_значения (требуется) - значение, которое нужно искать.

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

    Режим матча (необязательно) - указывает, какой тип соответствия использовать:

    • 0 или опущено (по умолчанию) - точное соответствие
    • -1 - точное совпадение или следующее наименьшее значение
    • 1 - точное совпадение или следующее по величине значение
    • 2 - совпадение подстановочных знаков (*, ?)

    Режим поиска (необязательно) - задает направление и алгоритм поиска:

    • 1 или опущено (по умолчанию) - поиск от первого до последнего.
    • -1 - поиск в обратном порядке от последнего к первому.
    • 2 - двоичный поиск по возрастанию. Требуется массив поиска быть отсортированы по возрастанию.
    • -2 - двоичный поиск по убыванию. Требуется массив поиска быть отсортированы в порядке убывания.

    Бинарный поиск - это более быстрый алгоритм, который эффективно работает с отсортированными массивами. Более подробную информацию можно найти в разделе Режим поиска.

    В какой версии Excel есть XMATCH?

    Функция XMATCH доступна только в Excel для Microsoft 365 и Excel 2021. В Excel 2019, Excel 2016 и более ранних версиях эта функция не поддерживается.

    Основная формула XMATCH в Excel

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

    Предположим, у вас есть список океанов, ранжированных по их размеру (C2:C6), и вы хотите найти ранг конкретного океана. Чтобы сделать это, просто используйте название океана, скажем Индийский , в качестве значения поиска и весь список имен в качестве массива поиска:

    =XMATCH("Indian", C2:C6)

    Чтобы сделать формулу более гибкой, введите интересующий вас океан в какую-нибудь ячейку, скажем F1:

    =XMATCH(F1, C2:C6)

    В результате вы получаете формулу XMATCH, которую нужно искать в файле вертикальный массив . Выходом является относительное положение искомого значения в массиве, которое в нашем случае соответствует рангу океана:

    Аналогичная формула прекрасно работает для горизонтальный массив тоже. Все, что вам нужно сделать, это настроить массив поиска ссылка:

    =XMATCH(B5, B1:F1)

    Функция Excel XMATCH - что нужно помнить

    Чтобы эффективно использовать XMATCH в своих рабочих листах и предотвратить неожиданные результаты, пожалуйста, запомните эти 3 простых факта:

    • Если в массиве поиска есть два или более вхождений значения поиска, то позиция первый матч возвращается, если режим поиска аргумент установлен в 1 или опущен. С режим поиска установлено значение -1, функция выполняет поиск в обратном порядке и возвращает позицию последний матч как показано в данном примере.
    • Если значение поиска не найден , возникает ошибка #N/A.
    • Функция XMATCH является без учета регистра по своей природе и не может различать регистр букв. Чтобы различать строчные и прописные символы, используйте эту чувствительную к регистру формулу XMATCH.

    Как использовать XMATCH в Excel - примеры формул

    Следующие примеры помогут вам лучше понять функцию XMATCH и ее практическое применение.

    Точное совпадение и приблизительное совпадение

    Поведение XMATCH при подборе контролируется дополнительным параметром режим соответствия аргумент:

    • 0 или опущено (по умолчанию) - формула ищет только точное совпадение. Если точное совпадение не найдено, возвращается ошибка #N/A.
    • -1 - формула ищет сначала точное совпадение, а затем следующий меньший элемент.
    • 1 - формула ищет сначала точное совпадение, а затем следующий больший элемент.

    А теперь давайте посмотрим, как различные режимы совпадения влияют на результат формулы. Предположим, вы хотите выяснить, где находится определенная площадь, скажем 80 000 000 км2, среди всех океанов.

    Точное совпадение

    Если вы используете 0 для режим соответствия вы получите ошибку #N/A, потому что формула не может найти значение, точно равное искомому значению:

    =XMATCH(80000000, C2:C6, 0)

    Следующая самая маленькая статья

    Если вы используете -1 для режим соответствия формула вернет 3, потому что ближайшее совпадение меньше значения поиска - 70 560 000, и это третий элемент в массиве поиска:

    =XMATCH(80000000, C2:C6, -1)

    Следующий по величине элемент

    Если вы используете 1 для режим соответствия формула выведет 2, так как ближайшее совпадение, превышающее значение поиска, равно 85 133 000, что является вторым элементом в массиве поиска:

    =XMATCH(80000000, C2:C6, -1)

    На изображении ниже показаны все результаты:

    Как сопоставить частичный текст в Excel с помощью подстановочных знаков

    Функция XMATCH имеет специальный режим соответствия для подстановочных знаков:. режим соответствия аргумент установлен на 2.

    В режиме подстановочного соответствия формула XMATCH принимает следующие символы подстановки:

    • Вопросительный знак (?) для соответствия любому одиночному символу.
    • Звездочка (*) для соответствия любой последовательности символов.

    Помните, что подстановочные знаки работают только с текстом, но не с числами.

    Например, чтобы найти позицию первого элемента, начинающегося на "юг", формула выглядит следующим образом:

    =XMATCH("south*", B2:B6, 2)

    Или вы можете ввести выражение с подстановочным знаком в некоторую ячейку, например F1, и указать ссылку на ячейку для lookup_value аргумент:

    =XMATCH(F1, B2:B6, 2)

    В большинстве функций Excel вы используете тильду (~), чтобы считать звездочку (~*) или вопросительный знак (~?) буквальными символами, а не подстановочными знаками. В XMATCH тильда не нужна. Если вы не определите режим соответствия подстановочных знаков, XMATCH будет считать, что ? и * являются обычными символами.

    Например, приведенная ниже формула будет искать в диапазоне A2:A7 именно символ звездочки:

    =XMATCH("*", A2:A7)

    Обратный поиск XMATCH для поиска последнего совпадения

    Если в массиве поиска имеется несколько вхождений искомого значения, иногда может потребоваться получить позицию последнее появление .

    Направление поиска контролируется 4-м аргументом XMATCH с именем режим поиска . Для поиска в обратном порядке, т.е. снизу вверх в вертикальном массиве и справа налево в горизонтальном массиве, режим поиска должно быть установлено значение -1.

    В этом примере мы вернем позицию последней записи для определенного значения поиска (см. скриншот ниже). Для этого задайте аргументы следующим образом:

    • Поиск_значения - целевой продавец в H1
    • Lookup_array - имена продавцов в C2:C10
    • Режим матча равно 0 или опущено (точное совпадение)
    • Режим поиска -1 (последний к первому)

    Сложив четыре аргумента вместе, мы получаем эту формулу:

    =XMATCH(H1, C2:C10, 0, -1)

    Который возвращает номер последней продажи, совершенной Лаурой:

    Как сравнить два столбца в Excel на соответствие

    Чтобы сравнить два списка на предмет совпадений, можно использовать функцию XMATCH вместе с IF и ISNA:

    IF( ISNA( XMATCH( целевой_список , список_поиска , 0)), "Не совпадает", "Совпадает")

    Например, чтобы сравнить список 2 в B2:B10 со списком 1 в A2:A10, формула принимает следующий вид:

    =IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Совпадение в списке 1")

    В данном примере мы определяем только совпадения, поэтому значение_если_истина аргумент функции IF - пустая строка ("").

    Введите приведенную выше формулу в самую верхнюю ячейку (в нашем случае C2), нажмите Enter , и она автоматически "перельется" в остальные ячейки (это называется диапазоном перелива):

    Как работает эта формула

    В основе формулы лежит функция XMATCH, которая ищет значение из списка 2 в списке 1. Если значение найдено, то возвращается его относительная позиция, иначе - ошибка #N/A. В нашем случае результатом XMATCH является следующий массив:

    {#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}

    Этот массив "подается" в функцию ISNA для проверки на наличие ошибок #N/A. Для каждой ошибки #N/A ISNA возвращает TRUE, для любого другого значения - FALSE. В результате получается следующий массив логических значений, где TRUE представляют несовпадения, а FALSE - совпадения:

    {TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE}

    В зависимости от того, как вы настроили последние два аргумента, формула выведет соответствующий текст. В нашем случае это пустая строка ("") для несовпадений ( значение_если_истина ) и "Матч в списке 1" для матчей ( значение_если_ложно ).

    Примечание. Эта формула работает только в Excel 365 и Excel 2021, которые поддерживают динамические массивы. Если вы используете Excel 2019, Excel 2016 или более раннюю версию, ознакомьтесь с другими решениями: Как сравнить два столбца в Excel.

    ИНДЕКС XMATCH в Excel

    XMATCH можно использовать в сочетании с функцией INDEX для получения значения из другого столбца, связанного с искомым значением, подобно формуле INDEX MATCH. Общий подход заключается в следующем:

    ИНДЕКС ( возврат _ массив , XMATCH ( поиск_значения , массив поиска )

    Логика очень проста и легко выполнима:

    Функция XMATCH вычисляет относительное положение искомого значения в массиве поиска и передает его в функцию row_num аргумент INDEX. На основе номера строки функция INDEX возвращает значение из любого указанного вами столбца.

    Например, чтобы найти площадь океана в E1, можно воспользоваться следующей формулой:

    =INDEX(B2:B6, XMATCH(E1, A2:A6))

    ИНДЕКС XMATCH XMATCH для выполнения 2-димензионального поиска

    Для одновременного поиска по столбцам и строкам используйте INDEX вместе с двумя функциями XMATCH. Первый XMATCH получит номер строки, а второй - номер столбца:

    ИНДЕКС ( данные , XMATCH ( lookup_value , вертикальный _ массив поиска ), XMATCH ( значение поиска , горизонтальный _ массив поиска ))

    Формула аналогична формуле INDEX MATCH MATCH, за исключением того, что вы можете опустить режим соответствия аргумент, поскольку по умолчанию он имеет точное соответствие.

    Например, чтобы получить количество продаж для данного товара (G1) в определенном месяце (G2), формула выглядит следующим образом:

    =INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))

    Где B2:D8 - ячейки данных без учета заголовков строк и столбцов, A2:A8 - список элементов, а B1:D1 - названия месяцев.

    Формула XMATCH с учетом регистра

    Как уже упоминалось, функция Excel XMATCH по своей конструкции не чувствительна к регистру. Чтобы заставить ее различать регистр текста, используйте XMATCH в сочетании с функцией EXACT:

    MATCH(TRUE, EXACT( массив поиска , поиск_значения ))

    Для поиска в обратный порядок от последнего к первому:

    MATCH(TRUE, EXACT( массив поиска , поиск_значения ), 0, -1)

    Предположим, у вас есть список идентификаторов товаров с учетом регистра в B2:B11. Вам нужно найти относительную позицию товара в E1. Формула с учетом регистра в E2 проста:

    =XMATCH(TRUE, EXACT(B2:B11, E1))

    Как работает эта формула:

    Функция EXACT сравнивает искомое значение с каждым элементом массива поиска. Если сравниваемые значения абсолютно равны, включая регистр символов, функция возвращает TRUE, в противном случае - FALSE. Этот массив логических значений (где TRUE представляет точное совпадение) поступает в массив массив поиска И поскольку значение поиска равно TRUE, функция XMATCH возвращает позицию первого найденного точного совпадения или последнего точного совпадения, в зависимости от того, как вы настроили параметр режим поиска аргумент.

    XMATCH против MATCH в Excel

    XMATCH был разработан как более мощная и универсальная замена MATCH, поэтому эти две функции имеют много общего. Однако есть и существенные различия.

    Разное поведение по умолчанию

    Функция MATCH по умолчанию выбирает точное совпадение или следующий наименьший элемент ( тип_соответствия установлен на 1 или опущен).

    Функция XMATCH по умолчанию устанавливает точное соответствие ( режим соответствия установлен на 0 или опущен).

    Разное поведение при приблизительном совпадении

    Когда режим соответствия / тип_соответствия аргумент устанавливается в 1:

    • MATCH ищет точное совпадение или следующее наименьшее. Требуется, чтобы массив поиска был отсортирован в порядке возрастания.
    • XMATCH ищет точное совпадение или следующее по величине. Не требует сортировки.

    Когда режим соответствия / тип_соответствия аргумент устанавливается в -1:

    • MATCH ищет точное совпадение или следующее по величине. Требуется сортировка массива поиска в порядке убывания.
    • XMATCH осуществляет поиск точного совпадения или ближайшего наименьшего. Не требует сортировки.

    Поиск с использованием диких символов

    Чтобы найти частичные совпадения с помощью XMATCH, необходимо установить значение режим соответствия аргумент к 2.

    Функция MATCH не имеет специального режима совпадения с подстановочными знаками. В большинстве случаев вы настраиваете ее на точное совпадение ( тип_соответствия установлено в 0), что также работает для поиска по подстановочным знакам.

    Режим поиска

    Как и новая функция XLOOKUP, XMATCH имеет специальный режим поиска аргумент, который позволяет вам определить направление поиска :

    • 1 или опущено (по умолчанию) - поиск от первого к последнему.
    • -1 - обратный поиск от последнего к первому.

    И выбрать алгоритм двоичного поиска что очень быстро и эффективно на отсортированные данные .

    • 2 - бинарный поиск на данных, отсортированных по возрастанию.
    • -2 - бинарный поиск на данных, отсортированных по убыванию.

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

    Синтаксис MATCH вообще не предусматривает аргумента режима поиска.

    XMATCH работает с массивами нативно

    В отличие от своего предшественника, функция XMATCH была разработана для динамического Excel и работает с массивами нативно, без необходимости нажимать Ctrl + Shift + Enter. Это значительно упрощает построение и редактирование формул, особенно при использовании нескольких различных функций вместе. Просто сравните следующие решения:

    • Формула с учетом регистра: XMATCH
    • Сравнить два столбца или списка на предмет совпадений: XMATCH

    Наличие XMATCH и MATCH

    XMATCH - это новая функция, и она доступна только в Excel для Microsoft 365 и Excel 2021.

    Функция MATCH доступна в любой версии Excel 365 вплоть до Excel 2007.

    Вот как использовать функцию XMATCH в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

    Примеры формул Excel XMATCH (файл.xlsx)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.