Формула Vlookup работает с некоторыми месяцами, получает ошибку #value с другими

2

Вот моя формула:

=IFERROR(((VLOOKUP($D$2,UOS!$A$18:$AC$31,5))/30)*$G$2,"")

$D$2Поле заполняется=Text(c1,"mmmm")

Когда я использую эту формулу и $D$2это январь, февраль, март, май, июнь, июль, сентябрь, октябрь или ноябрь - формула работает. Но когда $D$2апрель, август или декабрь, это не работает.

Массив таблицы отформатирован одинаково для месяца.

Ошибка, которую я получаю, если удалить IFERROR, #value

Я перепробовал все, что мог придумать - форматирование, прямой ключ месяца в D2 и т. Д.

Как я могу решить это?

Kat
источник

Ответы:

3

VLOOKUP (lookup_value, table_array, col_index_num) предполагает, что таблица отсортирована по основным порядкам сортировки (алфавитный, числовой и хронологический). Так как D2это текстовое значение (и я полагаю , колонка Aсодержит текстовые строки January, February...), алфавитная сортировка вступает в игру. «Апрель», «Август» и «Декабрь» располагаются перед «Январь» в алфавитном порядке; вот почему они терпят неудачу. Вам нужно изменить формулу на

= IFERROR (((VLOOKUP ($ D $ 2, UOS! $ A $ 18: $ AC $ 31,5 , FALSE )) / 30) * $ G $ 2, "")

искать точное совпадение и не ожидать, что список будет отсортирован по алфавиту.


«Февраль» предшествует «январю» в алфавитном порядке; ты уверен что он работает?

G-Man
источник
Спасибо. Как ни странно, другие месяцы работали, но это решает проблему. Спасибо
Kat