Функція Excel XMATCH з прикладами формул

  • Поділитися Цим
Michael Brown

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

В Excel 365 була додана функція XMATCH, яка прийшла на зміну функції MATCH. Але перш ніж приступити до модернізації існуючих формул, було б розумно розібратися у всіх перевагах нової функції і в тому, чим вона відрізняється від старої.

Таким чином, функція XMATCH схожа на функцію MATCH, але є більш гнучкою та надійною. Вона може шукати як у вертикальних, так і в горизонтальних масивах, шукати від першого до останнього або від останнього до першого, знаходити точні, приблизні та часткові збіги, а також використовувати більш швидкий бінарний алгоритм пошуку.

    Функція Excel XMATCH

    Функція СРАВНИТЬ в Excel повертає відносну позицію значення в масиві або діапазоні комірок.

    Він має наступний синтаксис:

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

    Де:

    Lookup_value (обов'язкове) - значення, яке потрібно шукати.

    Lookup_array (обов'язково) - масив або діапазон комірок, в якому потрібно здійснити пошук.

    Match_mode (необов'язково) - вказує, який тип відповідності використовувати:

    • 0 або пропущено (за замовчуванням) - точний збіг
    • -1 - точний збіг або наступне найменше значення
    • 1 - точний збіг або наступне за величиною значення
    • 2 - матч з wildcard (*, ?)

    Режим_пошуку (необов'язково) - вказує напрямок та алгоритм пошуку:

    • 1 або пропущено (за замовчуванням) - пошук з першого до останнього.
    • -1 - пошук у зворотному порядку від останнього до першого.
    • 2 - бінарний пошук за зростанням. Потрібно lookup_array відсортувати за зростанням.
    • -2 - бінарний пошук за спаданням. Потрібно lookup_array відсортувати за спаданням.

    Бінарний пошук - більш швидкий алгоритм, який ефективно працює на відсортованих масивах. Більш детальну інформацію можна знайти в розділі Режим пошуку.

    У якій версії 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 для пошуку в вертикальний масив На виході отримуємо відносну позицію шуканого значення у масиві, яка у нашому випадку відповідає рангу океану:

    Аналогічна формула чудово працює для горизонтальний масив Все, що вам потрібно зробити, це відрегулювати lookup_array довідка:

    =XMATCH(B5, B1:F1)

    Функція Excel XMATCH - що потрібно пам'ятати

    Щоб ефективно використовувати XMATCH у своїх робочих таблицях і запобігти неочікуваним результатам, будь ласка, запам'ятайте ці 3 прості факти:

    • Якщо в масиві пошуку є два або більше входжень шуканого значення, то позиція перший матч повертається, якщо режим_пошуку дорівнює 1 або опускається. При режим_пошуку встановлене в -1, функція виконує пошук у зворотному порядку і повертає позицію останній матч як показано на цьому прикладі.
    • Якщо шукане значення не знайдено виникає помилка #N/A.
    • Функція XMATCH - це нечутливий до регістру Для того, щоб розрізнити малі та великі літери, використовуйте цю формулу XMATCH з урахуванням регістру.

    Як використовувати XMATCH в Excel - приклади формул

    Наступні приклади допоможуть вам краще зрозуміти функцію XMATCH та її практичне використання.

    Точний збіг проти приблизного збігу

    Поведінка узгодження XMATCH контролюється за допомогою опції match_mode аргумент:

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

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

    Точний збіг

    Якщо ви використовуєте 0 для match_mode ви отримаєте помилку #N/A, оскільки формула не може знайти значення, яке точно дорівнює шуканому значенню:

    =XMATCH(80000000, C2:C6, 0)

    Наступна найменша позиція

    Якщо ви використовуєте -1 для match_mode формула поверне 3, оскільки найближчий збіг, менший за шукане значення, дорівнює 70 560 000, і це 3-й елемент у масиві пошуку:

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

    Наступна за величиною стаття

    Якщо ви використовуєте 1 для match_mode формула видасть 2, оскільки найближчий збіг, більший за шукане значення, дорівнює 85 133 000, що є 2-м елементом у масиві пошуку:

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

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

    Як підібрати частину тексту в Excel за допомогою підстановочних знаків

    Функція XMATCH має спеціальний режим збігу для підстановочних знаків - це match_mode аргумент дорівнює 2.

    У режимі збігу за підстановкою формула XMATCH приймає наступні символи підстановки:

    • Знак питання (?) на відповідність будь-якому окремому символу.
    • Зірочка (*) відповідає будь-якій послідовності символів.

    Будь ласка, майте на увазі, що підстановочні знаки працюють тільки з текстом, а не з числами.

    Наприклад, для знаходження позиції першого пункту, який починається на "південь", формула має вигляд:

    =XMATCH("південь*", B2:B6, 2)

    Або ви можете ввести вираз підстановки в якусь комірку, скажімо F1, і вказати посилання на комірку для lookup_value аргумент:

    =XMATCH(F1, B2:B6, 2)

    У більшості функцій Excel ви використовуєте тильду (~), щоб вважати зірочку (~*) або знак питання (~?) буквеними символами, а не символами підстановки. У XMATCH тильда не потрібна. Якщо ви не визначите режим відповідності символів підстановки, XMATCH вважатиме, що ? і * є звичайними символами.

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

    =XMATCH("*", A2:A7)

    XMATCH зворотний пошук для пошуку останнього збігу

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

    Напрямок пошуку контролюється 4-м аргументом XMATCH з ім'ям режим_пошуку Пошук у зворотному порядку, тобто знизу вгору у вертикальному масиві та справа наліво у горизонтальному масиві, режим_пошуку слід встановити на -1.

    У цьому прикладі ми повернемо позицію останнього запису для конкретного значення пошуку (див. скріншот нижче). Для цього налаштуємо аргументи наступним чином:

    • Lookup_value - цільовий продавець у першому півріччі
    • Lookup_array - імена продавців в С2:С10
    • Match_mode дорівнює 0 або пропущено (точний збіг)
    • Режим_пошуку дорівнює -1 (від останнього до першого)

    Склавши чотири аргументи разом, отримуємо таку формулу:

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

    Який повертає номер останнього продажу, здійсненого Лаурою:

    Як порівняти два стовпці в Excel на відповідність

    Для порівняння двох списків на предмет збігів можна використовувати функцію XMATCH разом з функціями IF і ISNA:

    IF( ISNA( XMATCH( target_list , список_пошуку , 0)), "Не збігається", "Збігається")

    Наприклад, для порівняння Списку 2 в B2:B10 зі Списком 1 в A2:A10 формула має наступний вигляд:

    =IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Збіг у списку 1")

    У цьому прикладі ми визначаємо тільки збіги, тому value_if_true аргумент функції IF - пустий рядок ("").

    Вводимо наведену вище формулу в саму верхню комірку (в нашому випадку С2), натискаємо 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;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE}

    Вищенаведений масив йде на логічну перевірку функції IF. В залежності від того, як ви налаштували останні два аргументи, формула буде виводити відповідний текст. У нашому випадку це пустий рядок ("") для неспівпадінь ( value_if_true ) і "Match in List 1" для матчів ( value_if_false ).

    Примітка: ця формула працює тільки в Excel 365 і Excel 2021, які підтримують динамічні масиви. Якщо ви використовуєте Excel 2019, Excel 2016 або більш ранню версію, ознайомтеся з іншими рішеннями: Як порівняти два стовпці в Excel.

    INDEX XMATCH в Excel

    XMATCH можна використовувати в поєднанні з функцією INDEX для отримання значення з іншого стовпця, пов'язаного з шуканим значенням, так само, як і формула INDEX MATCH. Загальний підхід полягає в наступному:

    ІНДЕКС ( повернення _ масив XMATCH ( lookup_value , lookup_array )

    Логіка дуже проста і зрозуміла:

    Функція XMATCH обчислює відносну позицію шуканого значення в масиві пошуку і передає її в функцію row_num На основі номера рядка функція INDEX повертає значення з будь-якого стовпця, який ви вкажете.

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

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

    INDEX XMATCH XMATCH для виконання 2-вимірного пошуку

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

    ІНДЕКС ( дані XMATCH ( lookup_value , вертикальний _ lookup_array ), XMATCH ( шукане значення , горизонтальний _ lookup_array ))

    Формула схожа на INDEX MATCH MATCH за винятком того, що ви можете опустити match_mode оскільки за замовчуванням він дорівнює точному збігу.

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

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

    Де B2:D8 - комірки даних, за винятком заголовків рядків і стовпців, A2:A8 - перелік позицій, B1:D1 - назви місяців.

    Формула XMATCH з урахуванням регістру

    Як вже зазначалося, функція підбору регістру в Excel за замовчуванням не чутлива до регістру. Щоб змусити її розрізняти регістр тексту, використовуйте функцію підбору регістру в поєднанні з функцією ТОЧНО:

    MATCH(TRUE, EXACT( lookup_array , lookup_value ))

    Для пошуку в зворотний порядок від останнього до першого:

    MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)

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

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

    Як працює ця формула:

    Функція EXACT порівнює шукане значення з кожним елементом масиву пошуку. Якщо порівнювані значення точно рівні, включаючи регістр символів, функція повертає TRUE, в іншому випадку - FALSE. Цей масив логічних значень (де TRUE означає точний збіг) передається в lookup_array І оскільки значення пошуку рівне TRUE, функція XMATCH повертає позицію першого знайденого точного збігу або останнього точного збігу, в залежності від того, як ви налаштували параметр режим_пошуку аргумент.

    XMATCH проти MATCH в Excel

    XMATCH був розроблений як більш потужна і універсальна заміна MATCH, і тому ці дві функції мають багато спільного. Однак є і суттєві відмінності.

    Інша поведінка за замовчуванням

    Функція MATCH за замовчуванням встановлює точний збіг або наступний найменший елемент ( match_type встановлюється в 1 або пропускається).

    Функція XMATCH за замовчуванням має точний збіг ( match_mode встановлено на 0 або пропущено).

    Різна поведінка для приблизного збігу

    Коли в Україні з'явився match_mode / match_type аргумент дорівнює 1:

    • MATCH шукає точний збіг або найближчий найменший. Вимагає, щоб масив пошуку був відсортований за зростанням.
    • XMATCH шукає точний збіг або наступний за величиною. Не вимагає ніякого сортування.

    Коли в Україні з'явився match_mode / match_type аргумент дорівнює -1:

    • MATCH шукає точний збіг або наступний за величиною. Вимагає сортування масиву пошуку в порядку спадання.
    • XMATCH шукає точний збіг або найближчий найменший. Не вимагає ніякого сортування.

    Пошук за підстановочними знаками

    Для пошуку часткових збігів за допомогою XMATCH необхідно встановити значення match_mode аргумент до 2.

    Функція MATCH не має спеціальної опції режиму підстановки підстановочних знаків. У більшості випадків ви налаштовуєте її на точний збіг ( match_type встановлюється в 0), що також працює для пошуку за шаблонами.

    Режим пошуку

    Як і нова функція XLOOKUP, XMATCH має спеціальну режим_пошуку аргумент, який дозволяє визначити напрямок пошуку :

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

    І обирайте бінарний алгоритм пошуку яка дуже швидко і ефективно працює на відсортовані дані .

    • 2 - бінарний пошук за даними, відсортованими за зростанням.
    • -2 - бінарний пошук за даними, відсортованими за спаданням.

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

    Синтаксис MATCH взагалі не передбачає аргументу режиму пошуку.

    XMATCH обробляє масиви нативно

    На відміну від своєї попередниці, функція XMATCH була розроблена для динамічного Excel і обробляє масиви нативно, без необхідності натискання клавіш Ctrl + Shift + Enter . Це значно полегшує створення і редагування формул, особливо при спільному використанні декількох різних функцій. Просто порівняйте наступні рішення:

    • Формула з урахуванням регістру: XMATCH
    • Порівняти дві колонки або списки для пошуку матчів: XMATCH

    Доступність XMATCH та MATCH

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

    Функція зіставлення доступна в будь-якій версії Excel 365 через Excel 2007.

    Ось так можна використовувати функцію СРАВНИТЬ в Excel. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Практичний посібник для завантаження

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

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.