Формула 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 и т. Д.

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

Ответы:


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, "")

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


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


Спасибо. Как ни странно, другие месяцы работали, но это решает проблему. Спасибо
Kat
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.