В настоящее время я пытаюсь изучить некоторые основные функции в Excel и создал следующую базовую электронную таблицу для работы:

таблица

Затем я попытался использовать функцию HLOOKUP, используя следующие аргументы:

HLOOKUP("Germany", B1:F4, 4)

По какой-то причине это возвращает значение 8 - что неверно. Однако, установив значение поиска для любой другой страны , это возвращает правильное значение.

Почему это?

1 ответ1

3

Ваши данные поиска (первая строка в диапазоне данных) НЕ отсортированы.

Вы ищете ТОЧНОЕ значение.

Таким образом, вы ДОЛЖНЫ использовать 4-й параметр функции HLOOKUP со значением FALSE :

=HLOOKUP("Germany", B1:F4, 4, FALSE)

Или сортируйте столбцы данных по возрастанию значений 1-й строки.

почему это работает для всех стран, если я изменяю второй параметр на A1:F4?

Я думаю, что поскольку HLOOKUP без 4-го параметра предполагает, что данные отсортированы, он использует метод половинного деления для поиска результата.

Теперь посмотрите: диапазон поиска B1: F1, 5 ячеек. Середина D1. Это меньше, чем значение для поиска, поэтому функция уменьшает диапазон поиска до D1: F1. Его середина - E1, и он превышает значение для поиска, функция уменьшает диапазон поиска до D1: E1. Теперь диапазон поиска составляет 2 ячейки, а результатом поиска считается D1. Так что у нас неверный результат.

Когда мы изменяем диапазон данных, диапазон поиска составляет A1:F1, 6 ячеек. Середина - С1. Это равно значению для поиска. Поиск остановлен. Таким образом, мы имеем правильный результат.

Это не правильно, похоже только. Например, создайте тестовую таблицу, где A1:H1 - это a, b, b, b, b, b, b, c и A2:H2 - это 1,2,3,4,5,6,7,8. Используйте HLOOKUP('b', A1:H2,2). Результат будет 7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .