Excel 2016 для передплатників Office 365 на Windows і Mac тепер підтримує нову функцію XLOOKUP, яка рекламується як значно простіша та універсальніша заміна дуже популярної (але часто зневаженої) функції вертикального пошуку, VLOOKUP (не знаю, що означає X у XLOOKUP означає; розширений, можливо?).
Для тих із вас, хто ще не знайомий з VLOOKUP (вважається третьою за часто використовуваною функцією відразу після SUM і AVERAGE), ця функція виконує пошук по вертикалі за рядком у крайньому лівому стовпці призначеної таблиці пошуку зверху вниз, поки не знайде значення в колонка пошуку, позначена номером зміщення, яке відповідає чи перевищує той, який ви шукаєте. Незважаючи на те, що функція VLOOKUP надзвичайно корисна для пошуку окремих елементів у довгому списку або стовпці таблиці даних на вашому робочому аркуші, функція VLOOKUP має кілька обмежень, які не поділяють ця нова функція пошуку, як XLOOKUP:
- За замовчуванням знаходить точні збіги для вашого значення пошуку в діапазоні пошуку
- Може шукати як по вертикалі (за рядком), так і по горизонталі (за стовпчиком) у таблиці, тим самим замінивши необхідність використання функції HLOOKUP під час горизонтального пошуку за стовпцем
- Може здійснювати пошук ліворуч або праворуч, щоб діапазон пошуку у вашій таблиці пошуку не мав бути розташований у стовпці ліворуч від стовпця, призначеного як діапазон повернення, щоб функція працювала
- Якщо використовується точна відповідність за замовчуванням, працює навіть тоді, коли значення в діапазоні пошуку не відсортовані в певному порядку
- Може здійснювати пошук від нижнього рядка до верхнього в діапазоні масиву пошуку, використовуючи додатковий аргумент режиму пошуку
Функція XLOOKUP має п’ять можливих аргументів, перші три з яких є обов’язковими, а останні два — необов’язковими, використовуючи такий синтаксис:
XLOOKUP ( шукане_значення , просматріваемий_массів , return_array , [ match_mode ], [ search_mode ])
Потрібний аргумент lookup_value позначає значення або елемент, який ви шукаєте. Необхідний аргумент масиву look_up позначає діапазон комірок, які потрібно шукати для цього значення пошуку, а аргумент return_array позначає діапазон комірок, що містять значення, яке потрібно повернути, коли Excel знайде точну відповідність.
* Майте на увазі, призначаючи аргументи lookup_array і return_array у вашій функції XLOOKUP, обидва діапазони повинні мати однакову довжину, інакше Excel поверне #VALUE! помилка у вашій формулі. Це скоріше причина використовувати назви діапазонів або стовпців визначеної таблиці даних під час визначення цих аргументів, а не вказувати на них чи вводити посилання на клітинки .
Додатковий аргумент match_mode може містити будь-яке з наступних чотирьох значень:
- 0 для точної відповідності (за замовчуванням, так само, як і якщо аргумент match_mode не призначено)
- -1 для точної відповідності або наступного меншого значення
- 1 для точної відповідності або наступного більшого значення
- 2 для часткової відповідності з використанням символів підстановки, приєднаних до посилання на клітинку в аргументі lookup_value
Додатковий аргумент search_mode може містити будь-яке з наступних чотирьох значень:
- 1 для пошуку від першого до останнього, тобто зверху вниз (за замовчуванням, так само, як якщо аргумент search_mode не призначено)
- -1 для пошуку від останнього до першого, тобто знизу вгору
- 2 для двійкового пошуку в порядку зростання
- -2 для двійкового пошуку в порядку спадання
Найкращий спосіб зрозуміти потужність та універсальність нової функції XLOOKUP — побачити її в дії на робочому аркуші Excel. На наступному малюнку у мене є робочий аркуш із простою таблицею даних про продажі за 2019 рік, упорядкованою за країнами. Щоб використовувати XLOOKUP для повернення загального обсягу продажів із цієї таблиці в клітинку E4 на основі країни, яку ви ввели в клітинку D4 робочого аркуша, виконайте такі дії:
Помістіть курсор комірки в клітинку E4 робочого аркуша
Клацніть параметр «Пошук і посилання» на вкладці «Формули», а потім «XLOOKUP» у нижній частині спадного меню, щоб відкрити діалогове вікно «Аргументи функцій».
Клацніть клітинку D4 на аркуші, щоб ввести посилання на клітинку в текстове поле аргументу Lookup_value.
Натисніть Tab, щоб вибрати текстове поле аргументу Lookup_array, потім клацніть клітинку A4 і утримуйте Shift, натискаючи Ctrl-стрілку вниз, щоб вибрати A4:A8 як діапазон для пошуку (оскільки діапазон A3:B8 визначається як таблиця даних Excel, Таблиця1[Країна] з’являється у текстовому полі замість діапазону A4:A8).
Натисніть Tab, щоб вибрати текстове поле аргументу Return_array, потім клацніть клітинку B4 і утримуйте Shift, натискаючи Ctrl-стрілка вниз, щоб вибрати B4:B8 як діапазон, що містить значення, які потрібно повернути на основі результатів пошуку (відображається як Таблиця 1 [Загальний обсяг продажів] у текстовому полі).
Натисніть кнопку OK, щоб ввести формулу XLOOKUP в клітинку E4.
Створення формули з XLOOKUP в клітинці E4, яка повертає продажі на основі країни, введеної в клітинку D4.
Excel вводить формулу XLOOKUP у клітинку E4 робочого аркуша та повертає 4900 як результат, оскільки Коста-Ріка наразі введена в клітинку пошуку D4, і, як ви можете бачити в таблиці продажів за 2019 рік, це справді загальний обсяг продажів для цієї країни.
Оскільки XLOOKUP працює як справа наліво, так і зліва направо, ви можете використовувати цю функцію так само добре, щоб повернути країну з цієї таблиці продажів на основі конкретного показника продажів. На наступному малюнку показано, як це зробити. Цього разу ви створюєте формулу XLOOKUP у клітинці D4 і призначаєте значення, введене в клітинку E4 (11 000, у цьому випадку), як аргумент lookup_value.
Крім того, ви вводите -1 як аргумент match_mode, щоб замінити точну відповідність функції за замовчуванням, щоб Excel повернув країну з точною відповідністю до значення продажів, введеного в комірку пошуку E4, або ту країну з наступним нижчим загальним обсягом продажів (Мексика з 10 000 доларів США в цьому випадку, оскільки в цій таблиці немає країни з 11 000 доларів США від загального обсягу продажів). Не призначаючи аргумент match_mode для цієї формули, Excel поверне #NA як результат, оскільки в цій таблиці продажів немає точної відповідності до 11 000 доларів США.
Створення формули з XLOOKUP у клітинці D4, яка повертає країну на основі продажів, введених у клітинку E4
Оскільки функція XLOOKUP однаково зручна для пошуку по горизонталі за стовпцями, як і по вертикалі за рядком, ви можете використовувати її для створення формули, яка виконує двосторонній пошук (замінюючи необхідність створення формули, яка поєднує функції INDEX і MATCH як в минулому). На наступному малюнку, що містить таблицю розкладу виробництва на 2019 рік для номерів деталей, від AB-100 до AB-103 за місяці з квітня по грудень, показано, як це робиться.
Створення формули з вкладеними функціями XLOOKUP для повернення кількості одиниць, вироблених для деталі за певний місяць
У клітинці B12 я створив таку формулу:
=XLOOKUP(part_lookup,$A$3:$A$6,XLOOKUP(date_lookup,$B$2:$J$2,$B$3:$J$6))
Ця формула починається з визначення функції XLOOKUP, яка виконує вертикальний пошук за рядком для точної відповідності запису частини, зробленому в комірці з назвою part_lookup (у цьому випадку клітинка B10) у діапазоні комірок $A$3:$A$6 виробничої таблиці. . Зауважте, однак, що аргумент return_array для цієї оригінальної функції LOOKUP сам по собі є другою функцією XLOOKUP.
Ця друга вкладена функція XLOOKUP шукає діапазон комірок $B$2:$J$2 горизонтально за стовпцями для точної відповідності запису дати, зробленому в комірці з назвою date_lookup (у цьому випадку клітинка B11). Аргументом return_array для цієї другої вкладеної функції XLOOKUP є $B$3:$J$6, діапазон комірок усіх виробничих значень у таблиці.
Ця формула працює так, що Excel спочатку обчислює результат другої вкладеної функції XLOOKUP, виконуючи горизонтальний пошук, який у цьому випадку повертає масив у діапазоні комірок D3: D6 стовпця Jun-19 (зі значеннями: 438, 153, 306 і 779) як результат. Цей результат, у свою чергу, стає аргументом return_array для вихідної функції XLOOKUP, яка виконує вертикальний пошук за рядком для точної відповідності запису номера частини, внесеному в комірку B11 (з назвою part_lookup). Оскільки в цьому прикладі ця клітинка part_lookup містить AB-102, формула повертає лише виробниче значення 19 червня, 306, з результату другої наступної функції XLOOKUP.
Ось і все! Перший погляд на XLOOKUP, потужну, універсальну та досить просту у використанні нову функцію пошуку, яка може виконувати не тільки пошук за одним значенням, що виконується функціями VLOOKUP і HLOOKUP, але також двосторонній пошук значень, що виконується комбінуванням Функції INDEX і MATCH також.
* На жаль, функція XLOOKUP це НЕ зворотна сумісність з більш ранніми версіями Microsoft Excel , які підтримують тільки функції ВПР і ГПР або сумісні з поточними версіями , які поки не включають його в якості одного зі своїх підстановок функцій, таких як Excel 2019 і Excel Online . Це означає, що якщо ви надаєте спільний доступ до книги, яка містить формули XLOOKUP, з колегами або клієнтами, які використовують версію Excel, яка не містить цієї нової функції пошуку, усі ці формули повертатимуть #NAME? значення помилок, коли вони відкривають його робочий аркуш.
Синтаксис
Функція XLOOKUP шукає діапазон або масив, а потім повертає елемент, який відповідає першому знайденому збігу. Якщо відповідності немає, XLOOKUP може повернути найближчу (приблизну) відповідність.
=XLOOKUP(пошукове_значення, масив_пошуку, масив_повернення, [якщо_не_знайдено], [режим_збігу], [режим_пошуку])
Аргумент
|
опис
|
шукане_значення
Вимагається*
|
Значення для пошуку
*Якщо пропущено, XLOOKUP повертає порожні клітинки, знайдені в lookup_array.
|
пошуковий_масив
вимагається
|
Масив або діапазон для пошуку
|
масив_повернення
вимагається
|
Масив або діапазон для повернення
|
[якщо_не_знайдено]
Додатково
|
Якщо дійсний збіг не знайдено, поверніть наданий вами текст [if_not_found].
Якщо дійсний збіг не знайдено, а [if_not_found] відсутній, #N/A повертається.
|
[match_mode]
Додатково
|
Вкажіть тип відповідності:
0 - Точна відповідність. Якщо нічого не знайдено, поверніть #N/A. Це значення за умовчанням.
-1 - Точна відповідність. Якщо нічого не знайдено, поверніть наступний менший елемент.
1 - Точна відповідність. Якщо нічого не знайдено, поверніть наступний більший елемент.
2 – символ підстановки, де *, ? і ~ мають особливе значення.
|
[режим_пошуку]
Додатково
|
Вкажіть режим пошуку для використання:
1 - Виконайте пошук, починаючи з першого елемента. Це значення за умовчанням.
-1 - Виконати пошук у зворотному напрямку, починаючи з останнього елемента.
2. Виконайте двійковий пошук, який покладається на пошуковий_масив, сортований у порядку зростання. Якщо не відсортовано, будуть повернуті недійсні результати.
-2 - Виконайте двійковий пошук, який покладається на пошуковий_масив, сортований у порядку спадання. Якщо не відсортовано, будуть повернуті недійсні результати.
|
Приклади
Приклад 1 використовує XLOOKUP для пошуку назви країни в діапазоні, а потім повертає її телефонний код країни. Він включає lookup_value (комірка F2), lookup_array (діапазон B2: B11) і аргументи return_array (діапазон D2:D11). Він не містить аргумент match_mode , оскільки XLOOKUP створює точну відповідність за умовчанням.
Примітка. XLOOKUP використовує масив пошуку та масив повернення, тоді як VLOOKUP використовує один масив таблиці, за яким іде номер індексу стовпця. Еквівалентна формула VLOOKUP у цьому випадку буде такою: =VLOOKUP(F2,B2:D11,3,FALSE)
———————————————————————————
Приклад 2 виконує пошук інформації про співробітника за ідентифікаційним номером працівника. На відміну від VLOOKUP, XLOOKUP може повертати масив із кількома елементами, тому одна формула може повертати як ім’я співробітника, так і відділ із клітинок C5:D14.
———————————————————————————
Приклад 3 додає аргумент if_not_found до попереднього прикладу.
———————————————————————————
Приклад 4 переглядає в стовпці C особистий дохід, введений у клітинку E2, і знаходить відповідну ставку податку в стовпці B. Він установлює if_not_found аргумент для повернення 0 (нуль), якщо нічого не знайдено. Аргумент match_mode встановлюється на 1, що означає, що функція шукатиме точний збіг, і якщо не зможе його знайти, повертає наступний більший елемент. Нарешті, аргумент search_mode встановлюється на 1, що означає функцію здійснюватиме пошук від першого елемента до останнього.
Примітка: XARRAY's lookup_array стовпець знаходиться праворуч від стовпець, тоді як VLOOKUP може переглядати лише зліва направо.return_array
———————————————————————————
Приклад 5 використовує вкладену функцію XLOOKUP для виконання як вертикального, так і горизонтального збігу. Спочатку він шукає Валовий прибуток у стовпці B, потім шукає Qtr1 у верхньому рядку таблиці (діапазон C5:F5) і, нарешті, повертає значення на перетині цих двох. Це подібно до спільного використання функцій INDEX і MATCH .
Порада. Ви також можете використовувати XLOOKUP, щоб замінити функцію HLOOKUP.
Примітка. Формула в клітинках D3:F3 така: =XLOOKUP(D2,$B6:$B17,XLOOKUP($C3, $C5:$G5,$C6:$G17)).
———————————————————————————
Приклад 6 використовується функція SUM і дві вкладені функції XLOOKUP для підсумовування всіх значень між двома діапазонами. У цьому випадку ми хочемо підсумувати значення для винограду, бананів і включити груші, які знаходяться між ними.
Формула в клітинці E3 така: =СУМА(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))
Як це працює? XLOOKUP повертає діапазон, тож під час обчислення формула виглядає так: =SUM($E$7:$E$9). Ви можете самостійно побачити, як це працює, вибравши клітинку з формулою XLOOKUP, подібною до цієї, а потім виберіть Формули > Аудит формули > Оцініть формулу, а потім виберіть Оцінити , щоб покроково виконати обчислення.