Функция Excel LOOKUP с примерами формул

  • Поделись Этим
Michael Brown

Учебное пособие объясняет векторную и массивную формы функции Excel LOOKUP и демонстрирует типичное и нетривиальное использование LOOKUP в Excel на примерах формул.

Один из самых частых вопросов, который время от времени задает каждый пользователь Excel, звучит так: " Как найти значение на одном листе и перенести соответствующее значение на другой лист? "Конечно, может быть много вариаций основного сценария: вы можете искать не точное, а ближайшее совпадение, вы можете искать вертикально в столбце или горизонтально в строке, оценивать один или несколько критериев и т.д. Однако суть одна - вам нужно знать, как искать в Excel.

Microsoft Excel предоставляет несколько различных способов поиска. Для начала давайте познакомимся с функцией, которая предназначена для обработки простейших случаев вертикального и горизонтального поиска. Как вы легко догадаетесь, я говорю о функции LOOKUP.

    Функция Excel LOOKUP - синтаксис и применение

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

    В Excel существует две формы LOOKUP: Вектор и Массив Каждая форма объясняется отдельно ниже.

    Функция Excel LOOKUP - векторная форма

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

    Синтаксис векторного поиска следующий:

    LOOKUP(lookup_value, lookup_vector, [result_vector])

    Где:

    • Поиск_значения (требуется) - значение для поиска. Это может быть число, текст, логическое значение TRUE или FALSE, или ссылка на ячейку, содержащую значение для поиска.
    • Lookup_vector (обязательно) - диапазон из одной строки или одного столбца для поиска. Он должен быть отсортирован в формате порядок возрастания .
    • вектор_результатов (необязательно) - диапазон из одной строки или одного столбца, из которого вы хотите вернуть результат - значение в той же позиции, что и значение поиска. вектор_результатов должен быть одинаковый размер в качестве диапазон поиска Если опущено, то результат возвращается от lookup_vector .

    Следующие примеры демонстрируют две простые формулы Lookup в действии.

    Формула вертикального поиска - поиск в одноколоночном диапазоне

    Допустим, у вас есть список продавцов в столбце D (D2:D5) и проданные ими продукты в столбце E (E2:E5). Вы создаете приборную панель, где пользователи будут вводить имя продавца в столбце B2, и вам нужна формула, которая выведет соответствующий продукт в столбце B3. Задача может быть легко решена с помощью этой формулы:

    =LOOKUP(B2,D2:D5,E2:E5)

    Чтобы лучше понять аргументы, посмотрите, пожалуйста, на этот снимок экрана:

    Формула горизонтального поиска - поиск в однорядном диапазоне

    Если ваши исходные данные имеют горизонтальное расположение, т.е. записи находятся в строках, а не в столбцах, то укажите диапазон в одну строку в параметре lookup_vector и вектор_результатов аргументы, например, такие:

    =LOOKUP(B2,E1:H1,E2:H2)

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

    5 вещей, которые вы должны знать о векторной форме Excel LOOKUP

    1. Значения в lookup_vector должны быть отсортированы в порядок возрастания т.е. от наименьшего к наибольшему или от A к Z, иначе ваша формула Excel Lookup может вернуть ошибку или неверный результат. Если вам нужно выполнить поиск по несортированные данные , затем используйте либо INDEX MATCH, либо OFFSET MATCH.
    2. Lookup_vector и вектор_результатов должен быть однорядный или одноколоночный диапазон одинакового размера.
    3. Функцией LOOKUP в Excel является без учета регистра но не различает текст в верхнем и нижнем регистре.
    4. Excel LOOKUP работает на основе приблизительное соответствие Точнее, формула поиска сначала ищет точное совпадение. Если она не может найти точное значение, то она ищет по следующее наименьшее значение т.е. наибольшее значение в lookup_vector который меньше или равен поиск_значения .

      Например, если ваше значение поиска равно "5", формула будет искать сначала его. Если "5" не найдено, она будет искать "4". Если "4" не найдено, она будет искать "3", и так далее.

    5. Если поиск_значения это меньше чем наименьшее значение в lookup_vector , Excel LOOKUP возвращает ошибку #N/A.

    Функция Excel LOOKUP - форма массива

    Массивная форма функции LOOKUP ищет указанное значение в первом столбце или строке массива и извлекает значение из той же позиции в последнем столбце или строке массива.

    Массив Lookup имеет 2 аргумента, оба из которых являются обязательными:

    LOOKUP(lookup_value, array)

    Где:

    • Поиск_значения - значение для поиска в массиве.
    • Массив - диапазон ячеек, в которых нужно искать искомое значение. Значения в первом столбце или строке массива (в зависимости от того, используется ли V-образный или H-образный поиск) должны быть отсортированы по возрастанию. Прописные и строчные символы считаются эквивалентными.

    Например, если имена продавцов расположены в первой колонке массива (колонка A), а даты заказов - в последней колонке массива (колонка C), вы можете использовать следующую формулу для поиска по имени и извлечения совпадающей даты:

    =LOOKUP(B2,D2:F5)

    Примечание. Массивную форму функции Excel LOOKUP не следует путать с формулами массивов Excel. Хотя она оперирует массивами, LOOKUP остается обычной формулой, которая завершается обычным образом нажатием клавиши Enter.

    4 вещи, которые вы должны знать о форме массива Excel LOOKUP

    1. Если массив есть больше строк, чем столбцов или одинаковое количество столбцов и строк, формула Lookup ищет в первом столбце (горизонтальный поиск).
    2. Если массив есть больше столбцов, чем строк Excel LOOKUP ищет в первой строке (вертикальный поиск).
    3. Если формула не может найти значение поиска, она использует параметр наибольшее значение в массиве, который меньше или равен lookup_value .
    4. Если значение поиска меньше чем наименьшее значение в первом столбце или строке массива (в зависимости от размеров массива), формула Lookup возвращает ошибку #N/A.

    Важное замечание! Функциональность формы массива Excel LOOKUP ограничена, и мы не рекомендуем ее использовать. Вместо этого вы можете использовать функцию VLOOKUP или HLOOKUP, которые являются улучшенными версиями для выполнения вертикального и горизонтального поиска соответственно.

    Как использовать функцию LOOKUP в Excel - примеры формул

    Хотя в Excel существуют более мощные функции поиска и сопоставления (это тема нашего следующего урока), LOOKUP может пригодиться во многих ситуациях, и следующие примеры демонстрируют несколько нетривиальных вариантов использования. Обратите внимание, что все приведенные ниже формулы используют векторную форму Excel LOOKUP.

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

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

    LOOKUP(2, 1/( колонка ""), колонка )

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

    =LOOKUP(2, 1/(A:A""), A:A)

    Чтобы получить последнее значение из других столбцов, измените ссылки на столбцы, как показано на скриншоте ниже - первая ссылка - это столбец, который нужно проверить на пустые/непустые ячейки, а вторая ссылка - это столбец, из которого нужно вернуть значение:

    Как работает эта формула

    В поиск_значения аргумент, вы вводите 2 или любое другое число больше 1 (через некоторое время вы поймете почему).

    В lookup_vector аргумент, вы подставляете это выражение: 1/(A:A"")

    • Сначала выполняется логическая операция A:A"", которая сравнивает каждую ячейку в столбце A с пустой строкой и возвращает TRUE для пустых ячеек и FALSE для непустых. В приведенном выше примере формула в F2 возвращает такой массив: {TRUE;TRUE;TRUE;TRUE;TRUE;FALSE...}.
    • Затем, вы делите число 1 на каждый элемент вышеуказанного массива. Так как TRUE равно 1, а FALSE равно 0, вы получаете новый массив, состоящий из 1 и ошибок #DIV/0! (результат деления на 0), и этот массив используется как lookup_vector В данном примере это {1;1;1;1;1;#DIV/0!...}.

    Итак, как получается, что формула возвращает последнее непустое значение в столбце, учитывая, что lookup_value не совпадает ни с одним элементом из lookup_vector ? Ключ к пониманию логики заключается в том, что Excel LOOKUP осуществляет поиск с приблизительным соответствием, т.е. когда точное значение поиска не найдено, оно соответствует следующему по величине значению в lookup_vector которая меньше, чем lookup_value В нашем случае, поиск_значения равно 2, а наибольшее значение в lookup_vector равна 1, поэтому LOOKUP соответствует последней 1 в массиве, которая является последней непустой ячейкой!

    В вектор_результатов аргумент, вы ссылаетесь на столбец, из которого вы хотите вернуть значение, и ваша формула Lookup получит значение в той же позиции, что и значение поиска.

    Совет. Если вы хотите получить номер строки удерживая последнее значение, затем используйте функцию ROW для его извлечения. Например: =LOOKUP(2,1/(A:A""),ROW(A:A))

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

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

    LOOKUP(2, 1/( строка ""), строка )

    На самом деле, эта формула - не что иное, как небольшая модификация предыдущей формулы, с той лишь разницей, что вы используете ссылку на строку вместо ссылки на столбец.

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

    =LOOKUP(2, 1/(1:1""), 1:1)

    На следующем снимке экрана показан результат:

    Получение значения, связанного с последней записью в строке

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

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

    Задача может быть решена с помощью следующей формулы LOOKUP:

    =LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)

    Логика формулы в основном такая же, как и в первом примере. Разница в том, что вы используете оператор "равно" ("=") вместо "не равно" ("") и работаете со строками, а не со столбцами.

    Следующий снимок экрана демонстрирует результат:

    Поиск как альтернатива вложенным IF

    Во всех формулах Lookup, которые мы обсуждали до сих пор, в качестве параметра lookup_vector и вектор_результатов Однако синтаксис функции Excel LOOKUP позволяет предоставлять векторы в виде константы вертикального массива, что позволяет воспроизвести функциональность вложенных IF с помощью более компактной и легко читаемой формулы.

    Допустим, у вас есть список сокращений в столбце A, и вы хотите заменить их на полные имена, где "C" означает "Completed", "D" - "Development", а "T" - "Testing". Задача может быть решена с помощью следующей вложенной функции IF:

    =IF(A2="c", "Завершено", IF(A2="d", "Разработка", IF(A2="t", "Тестирование", "")))

    Или с помощью этой формулы поиска:

    =LOOKUP(A2, {"c"; "d"; "t"}, {"Completed"; "Development"; "Testing"})

    Как показано на скриншоте ниже, обе формулы дают идентичные результаты:

    Примечание. Чтобы формула Excel Lookup работала правильно, значения в массив поиска должны быть отсортированы от А до Я или от наименьшего до наибольшего.

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

    Если предположить, что искомое значение находится в ячейке E2, таблица поиска имеет вид A2:C7, а интересующий нас столбец ("Статус") является третьим столбцом в таблице поиска, следующая формула выполнит эту работу:

    =LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Completed"; "Development"; "Testing"})

    Как показано на скриншоте ниже, формула извлекает статус проекта из таблицы поиска и заменяет аббревиатуру соответствующим словом:

    Совет. Если вы используете Excel 2016 как часть подписки Office 365, вы можете использовать функцию SWITCH для аналогичных целей.

    Надеюсь, эти примеры пролили свет на то, как работает функция LOOKUP. Чтобы лучше понять формулы, вы можете скачать эти примеры Excel Lookup. В следующем уроке мы обсудим несколько других способов поиска в Excel и объясним, какую формулу Lookup лучше использовать в той или иной ситуации. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.