Функция Excel XLOOKUP: все, что вам нужно знать (10 примеров)

Посмотреть видео - Функция XLOOKUP в Excel (10 примеров XLOOKUP)

Excel Функция XLOOKUP наконец-то прибыл.

Если вы использовали ВПР или ИНДЕКС / ПОИСКПОЗ, я уверен, что вам понравится гибкость, которую обеспечивает функция XLOOKUP.

В этом руководстве я расскажу все, что нужно знать о функции XLOOKUP, и несколько примеров, которые помогут вам узнать, как лучше всего ее использовать.

Итак, приступим!

Что такое XLOOKUP?

XLOOKUP - это новая функция Office 365 и новая улучшенная версия функции ВПР / ГПР.

Он делает все, что раньше делала ВПР, и многое другое.

XLOOKUP - это функция, которая позволяет быстро искать значение в наборе данных (по вертикали или горизонтали) и возвращать соответствующее значение в другой строке / столбце.

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

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

Но прежде чем я перейду к примерам, возникает большой вопрос - как мне получить доступ к XLOOKUP?

Как получить доступ к XLOOKUP?

На данный момент XLOOKUP доступен только для пользователей Office 365.

Таким образом, если вы используете предыдущие версии Excel (2010/2013/2016/2019), вы не сможете использовать эту функцию.

Я также не уверен, будет ли это когда-либо выпущено для предыдущих версий или нет (возможно, Microsoft сможет создать надстройку так же, как они это сделали для Power Query). Но на данный момент вы можете использовать его только в Office 365.

Щелкните здесь, чтобы перейти на Office 365

Если вы уже используете Office 365 (Домашний, Персональный или Университетский) и у вас нет доступа к нему, вы можете перейти на вкладку «Файл» и нажать «Учетная запись».

Там будет программа предварительной оценки Office, и вы можете щелкнуть ее и присоединиться к программе предварительной оценки Office. Это даст вам доступ к функции XLOOKUP.

Я ожидаю, что XLOOKUP скоро будет доступен во всех версиях Office 365.

Примечание. XLOOKUP также доступен для Office 365 для Mac и Excel в Интернете (Excel онлайн).

Синтаксис функции XLOOKUP

Ниже приведен синтаксис функции XLOOKUP:

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

Если вы использовали ВПР, вы заметите, что синтаксис очень похож, но, конечно же, с некоторыми замечательными дополнительными функциями.

Не волнуйтесь, если синтаксис и аргумент покажутся вам слишком сложными. Я расскажу о них с помощью нескольких простых примеров XLOOKUP позже в этом руководстве, которые сделают его кристально ясным.

Функция XLOOKUP может передавать 6 аргументов (3 обязательных и 3 необязательных):

  1. lookup_value - ценность, которую вы ищете
  2. lookup_array - массив, в котором вы ищете значение поиска
  3. return_array - массив, из которого вы хотите получить и вернуть значение (соответствующее позиции, где найдено значение поиска)
  4. [if_not_found] - значение, возвращаемое в случае, если искомое значение не найдено. Если вы не укажете этот аргумент, будет возвращена ошибка # Н / Д.
  5. [match_mode] - Здесь вы можете указать желаемый тип соответствия:
    • 0 - Точное совпадение, где lookup_value должно точно соответствовать значению в lookup_array. Это вариант по умолчанию.
    • -1 - Ищет точное совпадение, но если оно найдено, возвращает следующий меньший элемент / значение.
    • 1 - Ищет точное совпадение, но если оно найдено, возвращает следующий более крупный элемент / значение.
    • 2 - Для частичного сопоставления с использованием подстановочных знаков (* или ~)
  6. [search_mode] - Здесь вы указываете, как функция XLOOKUP должна искать в lookup_array
    • 1 - Это вариант по умолчанию, когда функция начинает искать значение lookup_value сверху (первый элемент) до низа (последний элемент) в массиве lookup_array.
    • -1 - Осуществляет поиск снизу вверх. Полезно, если вы хотите найти последнее совпадающее значение в lookup_array
    • 2 - Выполняет двоичный поиск, в котором данные необходимо отсортировать в порядке возрастания. Если не отсортировать, это может привести к ошибке или неверным результатам.
    • -2 - Выполняет двоичный поиск, в котором данные необходимо отсортировать по убыванию. Если не отсортировать, это может привести к ошибке или неверным результатам.

Примеры функций XLOOKUP

Теперь перейдем к самому интересному - нескольким практическим примерам XLOOKUP.

Эти примеры помогут вам лучше понять, как работает XLOOKUP, чем он отличается от VLOOKUP и INDEX / MATCH, а также некоторые улучшения и ограничения этой функции.

Щелкните здесь, чтобы загрузить файл с примером, и следуйте инструкциям.

Пример 1: получение значения поиска

Предположим, у вас есть следующий набор данных, и вы хотите получить математическую оценку Грега (значение поиска).

Ниже приведена формула, которая делает это:

= XLOOKUP (F2; A2: A15; B2: B15)

В приведенной выше формуле я только что использовал обязательные аргументы, в которых он ищет имя (сверху вниз), находит точное совпадение и возвращает соответствующее значение из B2: B15.

Одно очевидное различие между функциями XLOOKUP и VLOOKUP заключается в том, как они обрабатывают поисковый массив. В VLOOKUP у вас есть весь массив, в котором значение поиска находится в крайнем левом столбце, а затем вы указываете номер столбца, из которого вы хотите получить результат. XLOOKUP, с другой стороны, позволяет вам выбирать lookup_array и return_array отдельно.

Одно мгновенное преимущество использования lookup_array и return_array в качестве отдельных аргументов означает, что теперь вы можете посмотри налево. У VLOOKUP было это ограничение, когда вы могли только искать и находить значение, которое находится справа. Но с XLOOKUP это ограничение снято.

Вот пример. У меня такой же набор данных, где имя справа, а return_range слева.

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

= XLOOKUP (F2; D2: D15; A2: A15)

XLOOKUP решает еще одну серьезную проблему: если вы вставляете новый столбец или перемещаете столбцы, полученные данные все равно будут правильными. ВПР, скорее всего, приведет к поломке или неправильному результату в таких случаях, поскольку в большинстве случаев значение индекса столбца жестко запрограммировано.

Пример 2: поиск и выборка всей записи

Возьмем для примера те же данные.

В данном случае я не хочу просто получать оценку Грега по математике. Я хочу получить баллы по всем предметам.

В этом случае я могу использовать следующую формулу:

= XLOOKUP (F2; A2: A15; B2: D15)

В приведенной выше формуле используется диапазон return_array, превышающий столбец (B2: D15). Поэтому, когда значение поиска находится в A2: A15, формула возвращает всю строку из return_array.

Кроме того, вы не можете удалить только ячейки, которые являются частью массива, который был автоматически заполнен. В этом примере вы не можете удалить H2 или I2. Если вы попробуете, ничего не произойдет. Если вы выберете эти ячейки, формула в строке формул будет недоступна (что означает, что ее нельзя изменить).

Вы можете удалить формулу в ячейке G2 (там, где мы ее изначально ввели), она удалит весь результат.

Это полезное усовершенствование, так как раньше с ВПР вам нужно будет указать номер столбца отдельно для каждой формулы.

Пример 3: двусторонний поиск с использованием XLOOKUP (горизонтальный и вертикальный поиск)

Ниже приведен набор данных, в котором я хочу узнать оценку Грега по математике (тема в ячейке G2).

Это можно сделать с помощью двустороннего поиска, при котором я ищу имя в столбце A и имя субъекта в строке 1. Преимущество этого двустороннего поиска заключается в том, что результат не зависит от имени учащегося и имени субъекта. Если я изменю название темы на «Химия», эта двусторонняя формула XLOOKUP по-прежнему будет работать и даст мне правильный результат.

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

= XLOOKUP (G1; B1: D1; XLOOKUP (F2; A2: A15; B2: D15))

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

Таким образом, результат XLOOKUP (F2, A2: A15, B2: D15) равен {21,94,81}, что в данном случае представляет собой массив оценок, выставленных Грегом.

Затем он снова используется во внешней формуле XLOOKUP в качестве возвращаемого массива. Во внешней формуле XLOOKUP я ищу имя субъекта (которое находится в ячейке G1), а массив поиска - B1: D1.

Если имя субъекта - Math, эта внешняя формула XLOOKUP извлекает первое значение из возвращаемого массива - в данном примере это {21,94,81}.

Это делает то же самое, что до сих пор достигалось с помощью комбинации ИНДЕКС и ПОИСКПОЗ.

Щелкните здесь, чтобы загрузить файл с примером, и следуйте инструкциям.

Пример 4: Когда значение поиска не найдено (обработка ошибок)

В формулу XLOOKUP добавлена ​​обработка ошибок.

Четвертым аргументом в функции XLOOKUP является [if_not_found], где вы можете указать, что вы хотите, если поиск не может быть найден.

Предположим, у вас есть набор данных, как показано ниже, где вы хотите получить оценку по математике в случае совпадения, и в случае, если имя не найдено, вы хотите вернуть - «Не отображалось»

Приведенная ниже формула сделает это:

= XLOOKUP (F2; A2: A15; B2: B15; «Не отображалось»)

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

Пример 5: Вложенный XLOOKUP (поиск в нескольких диапазонах)

Гениальность аргумента [if_not_found] заключается в том, что он позволяет использовать вложенная формула XLOOKUP.

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

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

= XLOOKUP (A12; A2: A8; B2: B8; XLOOKUP (A12; F2: F8; G2: G8))

В приведенной выше формуле я использовал аргумент [if_not_found], чтобы использовать другую формулу XLOOKUP. Это позволяет вам добавить второй XLOOKUP в ту же формулу и сканировать две таблицы с помощью одной формулы.

Я не уверен, сколько вложенных файлов XLOOKUP можно использовать в формуле. Я пробовал до 10, и это сработало, потом я сдался 🙂

Пример 6: Найдите последнее совпадающее значение

Этот был крайне необходим, и XLOOKUP сделал это возможным. Теперь вам не нужно искать запутанные способы получить последнее совпадающее значение в диапазоне.

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

Приведенная ниже формула будет искать последнее значение для каждого отдела и давать имя последнего найма:

= XLOOKUP (F1; $ B $ 2: $ B $ 15; $ A $ 2: $ A $ 15 ,,, - 1)

В приведенной ниже формуле будет указана дата последнего найма для каждого отдела:

= XLOOKUP (F1; $ B $ 2: $ B $ 15; $ C $ 2: $ C $ 15 ,,, - 1)

Поскольку XLOOKUP имеет встроенную функцию для указания направления поиска (от первого к последнему или от последнего к первому), это выполняется с помощью простой формулы. С вертикальными данными VLOOKUP и INDEX / MATCH всегда смотрят сверху вниз, но с XLOOKUP также могут указывать направление снизу вверх.

Пример 7: приблизительное совпадение с XLOOKUP (найти налоговую ставку)

Еще одно заметное улучшение с XLOOKUP состоит в том, что теперь есть четыре режима сопоставления (VLOOKUP имеет 2, а MATCH - 3).

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

  • 0 - Точное совпадение, где lookup_value должно точно соответствовать значению в lookup_array. Это вариант по умолчанию.
  • -1 - Ищет точное совпадение, но если оно найдено, возвращает следующий меньший элемент / значение.
  • 1 - Ищет точное совпадение, но если оно найдено, возвращает следующий более крупный элемент / значение.
  • 2 - Для частичного сопоставления с использованием подстановочных знаков (* или ~)
Но самое приятное то, что вам не нужно беспокоиться о том, отсортированы ли ваши данные в порядке возрастания или убывания. Даже если данные не отсортированы, XLOOKUP позаботится об этом.

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

Ниже приведена формула, которая сделает это:

= XLOOKUP (B2; $ E $ 2: $ E $ 6; $ F $ 2: $ F $ 6,0; -1) * B2

Это просто использует значение продаж в качестве справочника и просматривает справочную таблицу справа. В этой формуле я использовал -1 в качестве пятого аргумента ([match_mode]), что означает, что он будет искать точное совпадение, а если он не найдет его, он вернет значение, немного меньшее, чем значение поиска. .

И, как я уже сказал, вам не нужно беспокоиться о том, отсортированы ли ваши данные.

Щелкните здесь, чтобы загрузить файл с примером, и следуйте инструкциям.

Пример 8: горизонтальный поиск

XLOOKUP может выполнять как вертикальный, так и горизонтальный поиск.

Ниже у меня есть набор данных, в котором у меня есть имена студентов и их оценки в строках, и я хочу получить оценку для имени в ячейке B7.

Приведенная ниже формула сделает это:

= XLOOKUP (B7; B1: O1; B2: O2)

Это не что иное, как простой поиск (аналогичный тому, что мы видели в примере 1), но горизонтальный.

Все приведенные мной примеры вертикального просмотра также могут быть выполнены с помощью горизонтального просмотра с помощью XLOOKUP (прощай, VLOOKUP и HLOOKUP).

Пример 9: Условный поиск (использование XLOOKUP с другими формулами)

Это немного продвинутый пример, который также демонстрирует возможности XLOOKUP, когда вам нужно выполнять сложные поисковые запросы.

Ниже приведен набор данных, в котором у меня есть имена студентов и их баллы, и я хочу знать имя студента, который набрал максимум баллов по каждому предмету, и количество студентов, набравших более 80 баллов по каждому предмету.

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

= XLOOKUP (МАКС (XLOOKUP (G1, $ B $ 1: $ D $ 1, $ B $ 2: $ D $ 15)), XLOOKUP (G1, $ B $ 1: $ D $ 1, $ B $ 2: $ D $ 15), $ A 2 доллара: 15 австралийских долларов)

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

Например, для математики, когда я использую XLOOKUP (G1, $ B $ 1: $ D $ 1, $ B $ 2: $ D $ 15), я получаю все оценки по математике. Затем я могу использовать функцию MAX, чтобы найти максимальное количество баллов в этом диапазоне.

Затем эта максимальная оценка становится моим значением поиска, а диапазон поиска будет массивом, возвращаемым XLOOKUP (G1, $ B $ 1: $ D $ 1, $ B $ 2: $ D $ 15).

Я использую это в другой формуле XLOOKUP, чтобы получить имя ученика, набравшего максимальное количество баллов.

А чтобы подсчитать количество студентов, набравших более 80 баллов, используйте следующую формулу:

= СЧЁТЕСЛИ (XLOOKUP (G1; $ B $ 1: $ D $ 1; $ B $ 2: $ D $ 15); "> 80")

Здесь просто используется формула XLOOKUP, чтобы получить диапазон всех значений для данной темы. Затем он помещает его в функцию СЧЁТЕСЛИ, чтобы получить количество баллов, превышающее 80.

Пример 10: Использование подстановочного знака в XLOOKUP

Подобно тому, как вы можете использовать подстановочные знаки в VLOOKUP и MATCH, вы также можете сделать это с помощью XLOOKUP.

Но есть разница.

В XLOOKUP вам нужно указать, что вы используете подстановочные знаки (в пятом аргументе). Если вы не укажете это, XLOOKUP выдаст ошибку.

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

Я хочу найти название компании в столбце D и получить рыночную капитализацию из таблицы слева. И поскольку имена в столбце D не являются точными совпадениями, мне придется использовать подстановочные знаки.

Ниже приведена формула, которая сделает это:

= XLOOKUP ("*" & D2 & "*", $ A $ 2: $ A $ 11, $ B $ 2: $ B $ 11`` 2)

В приведенной выше формуле я использовал подстановочный знак звездочки (*) до и после D2 (он должен быть заключен в двойные кавычки и соединен с D2 с помощью амперсанда).

Это указывает формуле на просмотр всех ячеек, и если она содержит слово в ячейке D2 (которая является Apple), считайте его точным совпадением. Неважно, сколько и каких символов стоит до и после текста в ячейке D2.

И чтобы убедиться, что XLOOKUP принимает подстановочные знаки, пятый аргумент имеет значение 2 (совпадение подстановочных знаков).

Пример 11: найти последнее значение в столбце

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

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

Приведенная ниже формула даст вам название последней компании:

= XLOOKUP ("*"; A2: A11; A2: A11`` 2, -1)

А приведенная ниже формула даст рыночную капитализацию последней компании в списке:

= XLOOKUP ("*"; A2: A11; B2: B11`` 2, -1)

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

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

И вторая формула, так как использует отдельный return_range, чтобы получить рыночную капитализацию фамилии в списке.

Щелкните здесь, чтобы загрузить файл с примером, и следуйте инструкциям.

Что делать, если у вас нет XLOOKUP?

Поскольку XLOOKUP, скорее всего, будет доступен только для пользователей Office 365, один из способов получить его - перейти на Office 365.

Если у вас уже есть Office 365 для дома, личного или университетского, у вас уже есть доступ к XLOOKUP. Все, что вам нужно сделать, это присоединиться к программе предварительной оценки Office.

Для этого перейдите на вкладку «Файл», нажмите «Учетная запись», а затем выберите опцию «Инсайдерский офис». Будет возможность присоединиться к инсайдерской программе.

Если у вас есть другие подписки на Office 365 (например, Enterprise), я уверен, что XLOOKUP и другие замечательные функции (например, динамические массивы, формулы, такие как SORT и FILTER) станут доступны в ближайшее время.

Если вы используете Excel 2010/2013/2016/2019, у вас не будет XLOOKUP, и вам придется продолжать использовать комбинации ВПР, ГПР и ИНДЕКС / ПОИСКПОЗ, чтобы максимально эффективно использовать формулы поиска.

Обратная совместимость XLOOKUP

Это одна вещь, о которой вам нужно быть осторожным: XLOOKUP - это НЕ обратно совместимый.

Это означает, что если вы создадите файл и воспользуетесь формулой XLOOKUP, а затем откроете его в версии, в которой нет XLOOKUP, он покажет ошибки.

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

Итак, это 11 примеров XLOOKUP, которые помогут вам быстрее выполнять поиск и справки, а также упростят использование.

Надеюсь, вы нашли этот урок полезным!

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave