Естественно, не работает. Два условия записываются раздельно в функции И или ИЛИ:
В каскаде функций ЕСЛИ одно из условий проверяется в предыдущей или последующей функции, поэтому проверять два условия - лишнее:
Код
=ЕСЛИ(ИЛИ(D28<5;D28>28);"не_в_диапазоне";ЕСЛИ(D28<=6;$M$5;ЕСЛИ(D28<=8;$M$6;ЕСЛИ(D28<=19;$M$7;ЕСЛИ(D28<=28;$M$8)))))
Каскад ЕСЛИ можно заменить:
Код
ИНДЕКС($M$5:$M$8;ПОИСКПОЗ(D28;{5;7;9;20}))
Код
=ПРОСМОТР(D28;{5;7;9;20};$M$5:$M$8)
Или указать значения диапазона в массиве консант:
Код
=ВПР(D28;{5;11:7;"ок":9;22:20;33};2)
где 11, "ок", 22, 33 - значения из M5:M8