#excel-formula
#excel-формула
Вопрос:
У меня есть приведенная ниже формула, которая не работает:
=IFERROR(INDEX(data[Ticket No.], SMALL(IF(AND(data[SLA (Hrs)]>=-24,data[SLA (Hrs)]<0), ROW(data[SLA (Hrs)])-ROW(Data!$D$2) 1), ROW(1:1))),"No Match")
Когда я удаляю И и просто использую любой из критериев, формула работает:
=IFERROR(INDEX(data[Ticket No.], SMALL(IF(data[SLA (Hrs)]>=-24, ROW(data[SLA (Hrs)])-ROW(Data!$D$2) 1), ROW(1:1))),"No Match")
=IFERROR(INDEX(data[Ticket No.], SMALL(IF(data[SLA (Hrs)]<0, ROW(data[SLA (Hrs)])-ROW(Data!$D$2) 1), ROW(1:1))),"No Match")
Когда я тестирую оператор AND самостоятельно, он возвращает TRUE .
AND(data[SLA (Hrs)]>=-24,data[SLA (Hrs)]<0)
Полная формула выводит:
Он возвращает 1 «Номер билета» с «SLA (Hrs)» из -2000, что неверно.
У меня есть 10 «Номер билета» с «SLA (Hrs)» между -24 и 0 в таблице «данные».
Любая информация, которую кто-либо может предложить, будет высоко оценена.
С уважением,
Алекс
Ответ №1:
Формулы массива не работают с AND()
или OR()
используют *
или
соответственно.
AND(data[SLA (Hrs)]>=-24,data[SLA (Hrs)]<0)
Должно быть:
(data[SLA (Hrs)]>=-24)*(data[SLA (Hrs)]<0)
итак:
=IFERROR(INDEX(data[Ticket No.], SMALL(IF((data[SLA (Hrs)]>=-24)*(data[SLA (Hrs)]<0), ROW(data[SLA (Hrs)])-ROW(Data!$D$2) 1), ROW(1:1))),"No Match")
не забудьте подтвердить с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Комментарии:
1. Я не знал о И / ИЛИ не работал в формулах массива. Спасибо за вашу помощь. Избавляет меня от огромной головной боли!