Функция LOOKUP в Excel

Функция LOOKUP (ПРОСМОТР) в Excel выполняет приблизительный поиск совпадений в диапазоне, состоящем из одного столбца или одной строки, и возвращает соответствующее значение из другого диапазона, состоящего из одного столбца или одной строки. Поведение функции по умолчанию делает его полезным для решения определенных проблем в Excel.

Что делает функция LOOKUP в Excel?

Функция LOOKUP в Excel ищет значения в диапазоне из одного столбца

Возвращаемое значение

Значение в векторе результата.

Аргументы

  • lookup_value — значение для поиска.
  • search_vector — диапазон из одной строки или одного столбца для поиска.
  • result_vector — [необязательно] Диапазон результатов в одну строку или один столбец.

Синтаксис

=LOOKUP(lookup_value, search_vector, [result_vector])

Примечания по использованию

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

Функция LOOKUP принимает три аргумента:  lookup_value, search_vector и  result_vector. Первый аргумент, lookup_value,  — это искомое значение. Второй аргумент,  Lookup_vector, представляет собой диапазон для поиска из одной строки или одного столбца. ПРОСМОТР предполагает, что search_vector отсортирован в порядке возрастания. Третий аргумент,  result_vector, представляет собой диапазон результатов из одной строки или одного столбца.

Result_vector  не является обязательным. Если указан result_vector, LOOKUP находит совпадение в искомом_векторе и возвращает соответствующее значение из result_vector. Если result_vector не указан, ПРОСМОТР возвращает значение совпадения, найденное в search_vector.

LOOKUP имеет поведение по умолчанию, что делает его полезным при решении определенных проблем. Например, LOOKUP можно использовать для получения приблизительно совпадающего значения вместо позиции и для поиска последнего значения в строке или столбце. ПРОСМОТР предполагает, что значения в lookup_vector отсортированы в порядке возрастания и всегда выполняет приблизительное сопоставление. Если LOOKUP не может найти совпадение, оно будет соответствовать следующему наименьшему значению.

Пример №1 – базовое использование

В приведенном выше примере формула в ячейке F5 возвращает значение совпадения, найденное в столбце B. Обратите внимание, что result_vector не предоставляется:

=LOOKUP(F4,B5:B9) // returns match in level

Формула в ячейке F6 возвращает соответствующее значение уровня из столбца C. Обратите внимание, что в этом случае предоставляются как вектор_поиска, так и  вектор_результата :

=LOOKUP(F4,B5:B9,C5:C9) // returns corresponding tier

В обеих формулах ПРОСМОТР автоматически выполняет приблизительное сопоставление, поэтому важно, чтобы искомый_вектор сортировался в порядке возрастания.

Пример №2 — последняя непустая ячейка

ПРОСМОТР можно использовать для получения значения последней заполненной (непустой) ячейки в столбце. На экране ниже формула в F6:

=LOOKUP(2,1/(B:B<>""),B:B)

Обратите внимание на использование полной ссылки на столбец. Это не интуитивная формула, но она хорошо работает. Ключом к пониманию этой формулы является понимание того, что lookup_value, равное 2, намеренно больше, чем любые значения, которые появятся в lookup_vector.

Пример №3 – последняя цена

Как и в приведенном выше примере, функцию поиска можно использовать для поиска последней цены в данных, отсортированных в порядке возрастания по дате. На экране ниже формула в G5:

=LOOKUP(2,1/(item=F5),price)

где товар (B5:B12) и цена (D5:D12) — именованные диапазоны .

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

Пример №4 — форма массива

Функция LOOKUPтакже имеет форму массива. В конфигурации массива LOOKUP принимает всего два аргумента: искомое_значение и один двумерный массив:

LOOKUP(lookup_value, array) // array form

В форме массива ПРОСМОТР оценивает массив и автоматически изменяет поведение в зависимости от размеров массива. Если ширина массива превышает высоту, функция ищет искомое значение в первой строке массива (например, HLOOKUP ). Если массив больше ширины (или квадрата), ПРОСМОТР ищет искомое значение в первом столбце (например, VLOOKUP).

В любом случае ПРОСМОТР возвращает значение в той же позиции из последней строки или столбца массива. В приведенном ниже примере показано, как работает форма массива. Формула в F5 настроена на использование вертикального массива, а формула в F6 настроена на использование горизонтального массива:

=LOOKUP(E5,B5:C9) // vertical array
=LOOKUP(E6,C11:G12) // horizontal array

Вертикальный и горизонтальный массивы содержат одни и те же значения; только ориентация другая.

Примечание. Microsoft не рекомендует использовать форму массива и предлагает  VLOOKUP  и HLOOKUP как лучшие варианты.

Примечания

  • ПРОСМОТР предполагает, что искомый_вектор отсортирован в порядке возрастания.
  • Если lookup_value не может быть найдено, ПРОСМОТР будет соответствовать следующему наименьшему значению.
  • Когда lookup_value больше всех значений в lookup_vector, соответствует последнему значению.
  • Если lookup_value меньше первого значения в lookup_vector, возвращает #N/A.
  • Result_vector должен быть такого же размера, как lookup_vector.
  • LOOKUP в Excel не чувствителен к регистру
Автор А. Днепров

Обучаю основам работы с офисными программами.

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