1

У меня сложный запрос для электронной таблицы, настроенной так:

 A  B  C  D 
a1 b1 c1 d1
a2 b2 c2 d2
.. .. .. ..

Следующие условия должны выполняться совместно:

  • A является определенной строкой foo

  • B должна быть конкретная строка бар

  • C должен быть TRUE

Если все вышеперечисленное не выполняется одновременно, тогда задайте значение 3. Если все вышеперечисленное выполнено, но D не является искомой строкой foobar, укажите значение 2. Если все условия выполнены (включая условие D), вернуть 1.

Я использую следующий синтаксис:

=IF(ISERROR(MATCH(1, (A2:A24="foo")*(B2:B24="bar")*(C2:C449=TRUE),0))=TRUE, 3, IF(ISERROR(MATCH(1, (A2:A24="foo")*(B2:B24="bar")*(C2:C449=TRUE)*(D2:D449="foobar"),0))=TRUE, 2, 1))

Кажется, есть проблема с последним "ISERROR". Он также не возвращает правильное значение самостоятельно.

1 ответ1

1

Это работает:

=IF(ISERROR(MATCH(1,(A2:A24="foo")*(B2:B24="bar")*(C2:C449=TRUE),0)),3,IF(ISERROR(MATCH(1,1*(D2:D449="foobar"),0)),2,1))

Вам не нужно проверять A, B и C во второй раз, потому что единственный способ добраться до второго IF() - это найти правильные значения.

Изменить: Ваша формула, как опубликовано, тоже работает правильно. Но обе эти формулы являются формулами массива и должны вводиться с помощью Ctrl+Shift+Enter

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .