Excel逻辑和If语句

我想写一个嵌套的if语句,执行以下操作:

如果C19 =否,C20 =否,C22 =是,则C30 =否

其他

如果C19 =是或C20 =是,C22 =是,则C30 =是

到目前为止,我有以下(非工作)代码:

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

有任何想法吗?

谢谢。

你可以这样做,以迎合

  • 通用testingC30="Yes" 符合(即给出"C22<>Yes"
  • C19和C20的配对testing均未得到满足(即给出"C19 and/or C20 are invalid"
  • C30的两个预期结果( YesNo

更新:看到尼克的回答让我意识到,你在第二次testing中确实有了一个testing

= IF(C22 =“是”,IF(AND(C19 =“否”,C20 =“否”),“否”,IF(OR(C19 =“Yes”,C20 =“Yes” ,“C19和/或C20无效”)),“C22 <>是”)

假设如果他们不符合这两个条件中的任何一个,那么什么也不做,那么这个工作就可以了

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

IF语句需要有一个逻辑testing,有两个值,一个在testing结果为真时返回,另一个在testing结果为假时返回。

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

但是,您可以通过在其中一个或两个值中embedded后续的IF语句来进行扩展,这可以recursion。 例如:

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

recursion的每一步仍然是一个简单的布尔(真/假)testing,有两个可能的答案。

一旦你将条件归结为简单的真/假陈述,只需将它们插入到IF语句中即可。