Логика Excel и операторы If - PullRequest
       4

Логика Excel и операторы If

0 голосов
/ 01 февраля 2012

Я пытаюсь написать вложенный оператор if, который выполняет следующее:

IF C19 = Нет, C20 = Нет и C22 = Да, затем C30 = Нет

else

ЕСЛИ C19 = да или C20 = да и C22 = да, то C30 = да

Пока у меня есть следующий (нерабочий) код:

=IF(OR(AND(C19="No",C20="No",C22="Yes"), C22="Yes","Yes","No"))

Любые идеи?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 01 февраля 2012

Если предположить, что если они не соответствуют ни одному из этих условий, то ничего не делать, тогда это должно сработать

=IF(AND(OR(C19="Yes",C20="Yes"),C22="Yes"),"Yes",IF(AND(C19="No",C20="No",C22="Yes"),"No",""))
0 голосов
/ 01 февраля 2012

Оператор IF должен иметь логический тест с двумя значениями, одно из которых должно возвращаться, если проверка верна, а другая, если проверка была ложной.

IF(logical_test, [value_if_true], [value_if_false])

Однако вы можете расширить это, встроив последующие операторы IF в одно или оба значения, и это может произойти. например:

IF (логический_тест, (IF (логический_тест, [value_if_true], [value_if_false])), ([value_if_false]))

Каждый шаг рекурсии все еще является простым булевым (true / false) тестом с двумя возможными ответами.

Как только вы сведете условия, которым вы должны соответствовать, в простые утверждения true / false, просто вставьте их в оператор IF.

0 голосов
/ 01 февраля 2012

Вы можете сделать это так, чтобы обслуживать

  • общий тест C30="Yes" не удовлетворяемый (т.е. давая "C22<>Yes")
  • обапарные тесты для C19 и C20 не удовлетворяются (т. е. дают "C19 and/or C20 are invalid"
  • два ваших желаемых результата для C30 (либо Yes, либо No)

Обновление: увидев ответ Ника, я понял, что у вас был тест Or во втором тесте

= IF (C22 = "Да", IF (AND (C19= "Нет", C20 = "Нет"), "Нет", ЕСЛИ (ИЛИ (C19 = "Да", C20 = "Да"), "Да", "C19 и / или C20 недействительны")), "C22 <> Да ")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...