И оператор, сбой внутри оператора IF, но работает при использовании отдельно

#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. Я не знал о И / ИЛИ не работал в формулах массива. Спасибо за вашу помощь. Избавляет меня от огромной головной боли!