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

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

Підручник знайомить з XLOOKUP - новою функцією вертикального та горизонтального пошуку в Excel. Пошук зліва, останній збіг, Vlookup за кількома критеріями та багато іншого, що раніше вимагало наукового ступеня в галузі ракетобудування, тепер стало таким же простим, як і азбука.

Щоразу, коли вам потрібно виконати пошук в Excel, якою функцією ви скористаєтеся: наріжним каменем ВПРАВО або його горизонтальним побратимом ПОИСК? У більш складному випадку ви покладетеся на канонічну комбінацію СООТНОШЕНИЕ ИНДЕКСА або доручите роботу надстрочному запиту? Хороша новина полягає в тому, що вам більше не доведеться вибирати - всі ці методи звільняють місце більш потужному і універсальному наступнику - функції XLOOKUP.

Чим XLOOKUP кращий? Багато в чому! Він може шукати по вертикалі і горизонталі, зліва і зверху, шукати за кількома критеріями і навіть повертати цілий стовпець або рядок даних, а не тільки одне значення. Microsoft знадобилося більше 3 десятиліть, але нарешті їм вдалося розробити надійну функцію, яка долає багато прикрих помилок і недоліків VLOOKUP.

У чому підступ? На жаль, він є. Функція XLOOKUP доступна лише в Excel для Microsoft 365, Excel 2021 та Excel для веб.

    Функція XLOOKUP в Excel - синтаксис і застосування

    Функція XLOOKUP в Excel виконує пошук діапазону або масиву для вказаного значення і повертає відповідне значення з іншого стовпця. Вона може шукати як по вертикалі, так і по горизонталі і виконувати точний збіг (за замовчуванням), приблизний (найближчий) збіг або збіг за підстановкою (частковий).

    Синтаксис функції XLOOKUP наступний:

    XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

    Перші 3 аргументи є обов'язковими, а останні три - необов'язковими.

    • Lookup_value - значення для пошуку.
    • Lookup_array - діапазон або масив, в якому потрібно шукати.
    • Return_array - діапазон або масив, з якого потрібно повернути значення.
    • Якщо_не_знайдено [необов'язково] - значення, яке повертається, якщо збігів не знайдено. Якщо не вказано, повертається помилка #N/A.
    • Match_mode [необов'язково] - тип збігу, який потрібно виконати:
      • 0 або пропущено (за замовчуванням) - точний збіг. Якщо не знайдено, повертається помилка #N/A.
      • -1 - точний збіг або наступне менше. Якщо точний збіг не знайдено, повертається наступне менше значення.
      • 1 - точний збіг або наступне більше. Якщо точний збіг не знайдено, повертається наступне більше значення.
      • 2 - збіг символів підстановки.
    • Режим_пошуку [необов'язково] - напрямок пошуку:
      • 1 або пропущено (за замовчуванням) - пошук з першого до останнього.
      • -1 - пошук у зворотному порядку, від останнього до першого.
      • 2 - бінарний пошук за даними, відсортованими за зростанням.
      • -2 - бінарний пошук за даними, відсортованими за спаданням.

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

    Базова формула XLOOKUP

    Для кращого розуміння побудуємо формулу Xlookup в її найпростішому вигляді для виконання точного пошуку. Для цього нам знадобляться лише перші 3 аргументи.

    Припустимо, у вас є зведена таблиця з інформацією про п'ять океанів на Землі. Ви хочете отримати площу конкретного океану, що вводиться в F1 ( lookup_value З назвами океанів у форматі А2:А6 ( lookup_array ) та зони в С2:С6 ( return_array ), формула виглядає наступним чином:

    =XLOOKUP(F1, A2:A6, C2:C6)

    У перекладі на зрозумілу англійську це означає: шукаємо значення F1 в A2:A6 і повертаємо значення з C2:C6 в тому ж рядку. Ніяких індексів стовпців, ніякого сортування, ніяких інших безглуздих примх Vlookup'а! Просто працює :)

    XLOOKUP проти VLOOKUP в Excel

    У порівнянні з традиційним VLOOKUP, XLOOKUP має багато переваг. Чим же він кращий за VLOOKUP? Ось список з 10 найкращих функцій, які вибивають двері перед будь-якою іншою функцією пошуку в Excel:

    1. Вертикальний і горизонтальний пошук Функція XLOOKUP отримала свою назву завдяки можливості дивитися вгору як по вертикалі, так і по горизонталі.
    2. Подивіться в будь-якому напрямку: праворуч, ліворуч, знизу або вгору У той час як VLOOKUP може шукати тільки в крайньому лівому стовпці, а HLOOKUP - в крайньому верхньому рядку, XLOOKUP не має таких обмежень. Горезвісний лівий пошук в Excel більше не є проблемою!
    3. Точний збіг за замовчуванням У більшості ситуацій ви будете шукати точний збіг, і XLOOKUP повертає його за замовчуванням (на відміну від функції VLOOKUP, яка за замовчуванням повертає приблизний збіг). Звичайно, ви можете змусити XLOOKUP виконувати і приблизний збіг, якщо це необхідно.
    4. Частковий збіг з підстановкою символів Коли вам відома лише частина шуканого значення, а не все значення, збіг зі спеціальним символом стає в нагоді.
    5. Пошук у зворотному порядку Раніше, щоб отримати останнє входження, потрібно було змінити порядок вихідних даних на протилежний. Тепер ви просто встановлюєте режим_пошуку аргумент -1, щоб змусити формулу Xlookup шукати ззаду і повертати останній збіг.
    6. Повернути декілька значень Маніпулюючи з return_array ви можете витягнути весь рядок або стовпець даних, пов'язаних з шуканим значенням.
    7. Пошук за кількома критеріями Excel XLOOKUP обробляє масиви нативно, що дозволяє виконувати пошук за кількома критеріями.
    8. Якщо функціонал помилки Традиційно ми використовуємо функцію IFNA для відстеження помилок #N/A. XLOOKUP включає цю функцію в if_not_found аргумент, що дозволяє вивести власний текст, якщо не знайдено жодного коректного збігу.
    9. Вставки/видалення стовпців Однією з найбільш дратівливих проблем з VLOOKUP є те, що додавання або видалення стовпців порушує формулу, оскільки стовпець, що повертається, ідентифікується за його індексним номером. З XLOOKUP ви надаєте діапазон повернення, а не номер, що означає, що ви можете вставляти та видаляти стільки стовпців, скільки вам потрібно, не порушуючи нічого.
    10. Краща продуктивність VLOOKUP може сповільнити роботу на робочих аркушах, оскільки включає в обчислення всю таблицю, що призводить до обробки набагато більшої кількості комірок, ніж насправді потрібно. XLOOKUP обробляє тільки масиви пошуку та повернення, від яких він дійсно залежить.

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

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

    Подивіться вгору по вертикалі і горизонталі

    Раніше Microsoft Excel мав дві функції для різних типів пошуку, кожна з яких мала свій синтаксис і правила використання: VLOOKUP для пошуку по вертикалі в стовпчику і HLOOKUP для пошуку по горизонталі в рядку.

    Функція XLOOKUP може робити і те, і інше з однаковим синтаксисом. Різниця полягає в тому, що ви надаєте для масивів пошуку та повернення.

    Для v-пошуку поставте стовпці:

    =XLOOKUP(E1, A2:A6, B2:B6)

    Для h-пошуку введіть рядки замість стовпців:

    =XLOOKUP(I1, B1:F1, B2:F2)

    Лівий пошук виконується нативно

    У попередніх версіях Excel формула ПОИСК ПО ИНДЕКСУ була єдиним надійним способом пошуку вліво або вгору. Тепер вам більше не потрібно поєднувати дві функції там, де достатньо однієї. Просто вкажіть цільовий масив пошуку, і XLOOKUP без проблем впорається з ним, незалежно від його розташування.

    Як приклад, додамо, що Звання Мета полягає в тому, щоб отримати ранг вхідних даних океану в F1. VLOOKUP тут спіткнувся б, тому що він може повернути значення тільки зі стовпця праворуч від стовпця пошуку. Формула Xlookup справляється з цим легко:

    =XLOOKUP(F1, B2:B6, A2:A6)

    Аналогічним чином можна подивитися вище при пошуку по горизонталі в рядках.

    XLOOKUP з точним і приблизним збігом

    Поведінка матчу контролюється 5-м аргументом, який називається match_mode За замовчуванням виконується точний збіг.

    Зверніть увагу, що навіть при виборі приблизного збігу ( match_mode встановлений в 1 або -1), функція все одно спочатку шукатиме точний збіг. Різниця полягає в тому, що вона повертає, якщо точне значення пошуку не знайдено.

    Аргумент Match_mode:

    • 0 або пропущено - точний збіг; якщо не знайдено - помилка #N/A.
    • -1 - точний збіг; якщо не знайдено - наступний менший елемент.
    • 1 - точний збіг; якщо не знайдено - наступний за величиною елемент.

    Точний матч XLOOKUP

    Цей параметр ви, ймовірно, використовуєте в 99% випадків, коли виконуєте пошук в Excel. Оскільки точний збіг - це поведінка XLOOKUP за замовчуванням, ви можете опустити match_mode і вказати лише перші 3 обов'язкові аргументи.

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

    У нашому прикладі таблиця пошуку показує кореляцію між екзаменаційними балами та оцінками. Як ви можете бачити на скріншоті нижче, точний збіг працює тільки тоді, коли бал конкретного студента точно відповідає значенню в таблиці пошуку (як у Крістіана в рядку 3). У всіх інших випадках повертається помилка #N/A.

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)

    Щоб отримати оцінки замість помилок #N/A, потрібно шукати приблизний збіг, як показано в наступному прикладі.

    Орієнтовний матч XLOOKUP

    Щоб виконати приблизний пошук, встановіть значення match_mode аргумент до -1 або 1, залежно від того, як організовані ваші дані.

    У нашому випадку в таблиці пошуку вказані нижні межі оцінок. Отже, задамо match_mode до -1 для пошуку наступного меншого значення, якщо точний збіг не знайдено:

    =XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)

    Наприклад, у Брайана 98 балів (F2), формула шукає це значення в B2:B6, але не знаходить його. Тоді вона шукає наступний менший елемент і знаходить 90 балів, що відповідає оцінці А:

    Якби наша пошукова таблиця містила верхні межі оцінок, ми б задали match_mode до 1 для пошуку наступного більшого елемента, якщо точний збіг не знайдено:

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)

    Формула шукає 98 і знову не знаходить його. Цього разу вона намагається знайти наступне більше значення і отримує 100, що відповідає оцінці А:

    Підказка Під час копіювання формули Xlookup у кілька клітинок заблокуйте діапазони пошуку або повернення абсолютними посиланнями на клітинки (наприклад, $B$2:$B$6), щоб запобігти їх зміні.

    XLOOKUP з частковим збігом (підстановочні знаки)

    Щоб виконати пошук часткових збігів, встановіть параметр match_mode аргумент 2, який дає вказівку функції XLOOKUP обробляти символи підстановки:

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

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

    Наприклад, щоб отримати інформацію про акумулятор iPhone X, скористайтеся цією формулою:

    =XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)

    Або ввести відому частину шуканого значення в деяку комірку і об'єднати посилання на комірку символами підстановки:

    =XLOOKUP("*"&E1& "*", A2:A8, B2:B8, ,2)

    XLOOKUP у зворотному порядку для отримання останнього входження

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

    Напрямок пошуку контролюється 6-м аргументом з ім'ям режим_пошуку :

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

    Як приклад, повернемо останній продаж, здійснений конкретним продавцем. Для цього складемо перші три необхідні аргументи (G1 для lookup_value B2:B9 для lookup_array і D2:D9 для return_array ) і поставити -1 в 5-му аргументі:

    =XLOOKUP(G1, B2:B9, D2:D9, , ,-1)

    Просто і зрозуміло, чи не так?

    XLOOKUP для повернення декількох стовпців або рядків

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

    З наведеної нижче таблиці, припустимо, ви хочете отримати всі дані, що стосуються продавця, який вас цікавить (F2). Вам потрібно ввести діапазон, а не один стовпець або рядок, для return_array аргумент:

    =XLOOKUP(F2, A2:A7, B2:D7)

    Ви вводите формулу в ліву верхню комірку діапазону результатів, а Excel автоматично розносить результати в сусідні порожні комірки. У нашому випадку масив, що повертається (B2:D7) включає 3 стовпці ( Дата , Пункт і Сума ), і всі три значення повертаються в діапазон G2:I2.

    Якщо ви бажаєте розташувати результати вертикально в стовпці, вкладіть XLOOKUP у функцію TRANSPOSE, щоб перевернути масив, що повертається:

    =TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))

    Аналогічним чином можна повернути цілий стовпець даних, скажімо Сума Для цього використовуйте комірку F1, яка містить слово "Сума", як lookup_value діапазон A1:D, що містить заголовки стовпців у вигляді lookup_array а діапазон A2:D7, що містить всі дані у вигляді return_array .

    =XLOOKUP(F1, A1:D1, A2:D7)

    Примітка. Оскільки в сусідні клітинки вводиться кілька значень, переконайтеся, що справа або знизу достатньо порожніх клітинок. Якщо Excel не може знайти достатню кількість порожніх клітинок, виникає помилка #SPILL!

    Порада. XLOOKUP може не тільки повертати кілька записів, але й замінювати їх на інші значення, які ви вкажете. Приклад такої масової заміни можна знайти тут: Як шукати і замінювати кілька значень за допомогою XLOOKUP.

    XLOOKUP за кількома критеріями

    Ще однією великою перевагою XLOOKUP є те, що він працює з масивами нативно. Завдяки цій можливості ви можете оцінювати кілька критеріїв безпосередньо в lookup_array аргумент:

    XLOOKUP(1, ( критерії_діапазон1 = критерії1 ) * ( критерії_діапазон2 = критерії2 ) * (...), return_array )

    Як працює ця формула : Результатом перевірки кожного критерію є масив значень TRUE і FALSE. Перемноження масивів перетворює TRUE і FALSE в 1 і 0 відповідно, і дає остаточний масив пошуку. Як відомо, множення на 0 завжди дає нуль, тому в масиві пошуку тільки ті елементи, які задовольняють всім критеріям, представлені 1. А оскільки наше шукане значення "1", то Excel бере першу "1" в lookup_array (перший збіг) і повертає значення з return_array на тій же посаді.

    Щоб побачити формулу в дії, витягнемо суму з D2:D10 ( return_array ) з наступними умовами:

    • Критерій1 (дата) = G1
    • Критерій2 (продавець) = G2
    • Критерії3 (пункт) = G3

    З датами в форматі A2:A10 ( критерії_діапазон1 ), імена продавців у комірках B2:B10 ( критерії_діапазон2 ) та позицій у класах С2:С10 ( критерії_діапазон3 ), формула набуває такого вигляду:

    =XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)

    Хоча функція Excel СРЗНАЧ обробляє масиви, вона працює як звичайна формула і завершується звичайним натисканням клавіші Enter.

    Формула XLOOKUP з декількома критеріями не обмежується умовами "дорівнює". Ви можете використовувати й інші логічні оператори. Наприклад, щоб відфільтрувати заявки, зроблені в дату в G1 або раніше, поставте в першому критерії "<=G1":

    =XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)

    Подвійний XLOOKUP

    Щоб знайти значення на перетині певного рядка і стовпця, виконують так звані подвійний пошук або пошук матриць Так, Excel XLOOKUP може це зробити! Ви просто вкладаєте одну функцію в іншу:

    XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))

    Як працює ця формула Формула заснована на здатності XLOOKUP повертати цілий рядок або стовпець. Внутрішня функція шукає шукане значення і повертає стовпець або рядок відповідних даних. Цей масив передається у зовнішню функцію як return_array .

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

    =XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))

    Або навпаки:

    =XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))

    Де A2:A6 - імена продавців, B1:E1 - квартали (заголовки стовпців), B2:E6 - значення даних.

    Двосторонній пошук також можна виконати за допомогою формули INDEX Match і декількома іншими способами. Для отримання додаткової інформації див. розділ Двосторонній пошук в Excel.

    Якщо помилка XLOOKUP

    Коли шукане значення не знайдено, Excel XLOOKUP повертає помилку #N/A. Досить звична і зрозуміла для досвідчених користувачів, вона може бути досить заплутаною для новачків. Щоб замінити стандартне позначення помилки на зручне для користувача повідомлення, введіть власний текст в 4-й аргумент з ім'ям if_not_found .

    Повернемося до найпершого прикладу, розглянутого в цьому посібнику. Якщо хтось введе невірну назву океану в E1, наступна формула явно скаже йому, що "Відповідність не знайдено":

    =XLOOKUP(E1, A2:A6, B2:B6, "Співпадіння не знайдено")

    Нотатки:

    • На сьогоднішній день, на жаль, це не так. if_not_found аргумент перехоплює тільки помилки #N/A, а не всі помилки.
    • Помилки #N/A також можуть бути оброблені за допомогою IFNA і VLOOKUP, але синтаксис трохи складніший, а формула довша.

    XLOOKUP з урахуванням особливостей корпусу

    За замовчуванням функція XLOOKUP розглядає малі та великі літери як однакові символи. Щоб зробити її чутливою до регістру, використовуйте функцію EXACT для lookup_array аргумент:

    XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )

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

    Наприклад, щоб отримати ціну з B2:B7 ( return_array ) для позиції в Е1 ( lookup_value) формула в E2 має вигляд:

    =XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Не знайдено")

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

    Не працює XLOOKUP Excel

    Якщо ваша формула працює неправильно або видає помилку, швидше за все, це пов'язано з наступними причинами:

    XLOOKUP недоступний в моєму Excel

    Функція XLOOKUP не є зворотньо сумісною. Вона доступна лише в Excel для Microsoft 365 і Excel 2021 і не з'явиться в більш ранніх версіях.

    XLOOKUP повертає неправильний результат

    Якщо ваша очевидно правильна формула Xlookup повертає неправильне значення, швидше за все, діапазон пошуку або повернення "змістився", коли формула була скопійована вниз або вгору. Щоб цього не сталося, переконайтеся, що ви завжди блокуєте обидва діапазони за допомогою абсолютних посилань на клітинки (наприклад, $A$2:$A$10).

    XLOOKUP повертає помилку #N/A

    Помилка #N/A означає, що шукане значення не знайдено. Щоб виправити її, спробуйте знайти приблизний збіг або повідомте користувачам, що збігів не знайдено.

    XLOOKUP повертає помилку #VALUE

    Помилка #VALUE! виникає, якщо масиви пошуку та повернення мають несумісну розмірність. Наприклад, неможливо шукати в горизонтальному масиві та повертати значення з вертикального масиву.

    XLOOKUP повертає помилку #REF

    Помилка #REF! виникає при пошуку між двома різними робочими книгами, одна з яких закрита. Щоб виправити помилку, просто відкрийте обидва файли.

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

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

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

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