Поиск влево и снизу вверх
Ищите в любом направлении, в том числе справа налево и от последнего к первому
«Поиск влево и снизу вверх» — бесплатный урок Excel Formulas Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Excel Formulas Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Excel Formulas Academy содержит 4 уроков всего.
Свободное направление поиска
Одно из главных ограничений VLOOKUP заключалось в том, что функция могла возвращать значения только справа от столбца поиска. У XLOOKUP такого ограничения нет.
Поскольку массив поиска и возвращаемый массив задаются отдельно, результат может находиться где угодно — слева, справа, выше или ниже столбца, в котором выполняется поиск.
=XLOOKUP(D2, B2:B20, A2:A20)Поиск слева
Предположим, ID находятся в столбце B, а имена — в столбце A, то есть слева. VLOOKUP не могла работать так без перестановки столбцов.
С XLOOKUP достаточно выполнить поиск в столбце B и вернуть значения из столбца A. Функция без проблем возвращает значение, расположенное слева от столбца поиска.
=XLOOKUP(D2, B2:B20, A2:A20)Пятый аргумент: режим поиска
У XLOOKUP есть необязательный пятый аргумент — search_mode, который задаёт направление поиска.
1— поиск от первого элемента к последнему (по умолчанию)-1— поиск от последнего элемента к первому2— двоичный поиск в данных, отсортированных по возрастанию-2— двоичный поиск в данных, отсортированных по убыванию
=XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)Направление поиска по умолчанию
По умолчанию XLOOKUP ищет сверху вниз и возвращает первое найденное совпадение.
Если значение встречается в списке несколько раз, этот вариант возвращает самое раннее вхождение. В большинстве случаев этого достаточно, но иногда требуется получить самую свежую запись.
=XLOOKUP(D2, A2:A20, B2:B20)Поиск снизу
Установите режим поиска -1, чтобы искать снизу вверх. Тогда XLOOKUP вернёт последнее совпадающее значение.
Поскольку аргументы «если не найдено» и «режим сопоставления» идут перед режимом поиска, их нужно указать как заполнители, даже если они пусты.
=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)Зачем нужно последнее совпадение
Представьте журнал, в котором каждая строка содержит обновление статуса заказа, а самые старые записи находятся вверху.
Поиск сверху вниз возвращает первый статус заказа. Поиск снизу вверх с помощью -1 возвращает его последний статус. Одни и те же данные дают два совершенно разных результата в зависимости от направления поиска.
=XLOOKUP(D2, OrderID, Status, "No record", 0, -1)Заполнение заполнителей
Аргументы имеют позиционный порядок, поэтому нельзя перейти сразу к шестому аргументу, не указав предыдущие.
В формуле =XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1) значение "Not found" — это аргумент «если не найдено», а 0 — режим сопоставления (точное совпадение). Они занимают соответствующие позиции, чтобы -1 оказался в режиме поиска.
=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)Кратко о режиме сопоставления
Соседний с пятым аргументом режим сопоставления определяет, как выполняется сопоставление:
0— точное совпадение (по умолчанию)-1— точное совпадение или ближайшее меньшее значение1— точное совпадение или ближайшее большее значение2— сопоставление с подстановочными символами * и ?
Для поиска слева и снизу обычно оставляют значение 0.
=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)Практический пример поиска снизу
В таблице изменений цен каждый товар записан при каждом обновлении его цены. Чтобы получить текущую цену, нужно найти последнюю запись для этого товара.
Поиск снизу с помощью -1 возвращает самую свежую цену без сортировки и дополнительных вспомогательных столбцов.
=XLOOKUP("Laptop", A2:A500, B2:B500, "No price", 0, -1)Двоичный поиск для ускорения
Режимы поиска 2 и -2 используют более быстрый двоичный поиск, но требуют сортировки массива поиска: по возрастанию для 2 и по убыванию для -2.
В огромных отсортированных списках такой поиск значительно быстрее. Если данные на самом деле не отсортированы, двоичный поиск может вернуть неправильный результат, поэтому используйте его осторожно.
=XLOOKUP(D2, A2:A100000, B2:B100000, "Not found", 0, 2)Практическое применение направления поиска
Теперь Вы управляете и тем, где, и тем, в каком направлении выполняется поиск XLOOKUP:
- Свободно возвращайте значения слева
1— первое совпадение (по умолчанию)-1— последнее совпадение2или-2— быстрый двоичный поиск в отсортированных данных
Не забудьте заполнить аргументы «если не найдено» и «режим сопоставления» перед режимом поиска.
=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)Быстрая проверка
Проверьте, насколько Вы поняли аргумент режима поиска.
Итоги: любое направление
Вы узнали о возможностях XLOOKUP в разных направлениях:
- Возвращаемые массивы могут находиться слева от массива поиска
- Режим поиска (шестой аргумент) задаёт направление
-1находит последнее совпадение, что идеально подходит для поиска последней записи2и-2включают быстрый двоичный поиск в отсортированных данных
Далее Вы научитесь возвращать целые строки или столбцы с помощью одного XLOOKUP.
=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)Часто задаваемые вопросы
Урок «Поиск влево и снизу вверх» бесплатный?
Да — полный текст урока «Поиск влево и снизу вверх» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Excel Formulas Academy, подпишись на CoddyKit PRO. Курс Excel Formulas Academy содержит 4 уроков всего.
Чему я научусь в уроке «Поиск влево и снизу вверх»?
Ищите в любом направлении, в том числе справа налево и от последнего к первому Ты практикуешь Excel Formulas Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Excel Formulas Academy?
Предыдущий опыт не требуется. Excel Formulas Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Поиск влево и снизу вверх»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Excel Formulas Academy?
Да. Каждый урок Excel Formulas Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Синтаксис XLOOKUP
- Обработка отсутствующих совпадений с помощью if_not_found
- Поиск влево и снизу вверх
- Возврат целых строк или столбцов