Функция 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 не чувствителен к регистру