Excel逻辑和If语句

时间:2012-02-01 09:29:16

标签: excel logic

我正在尝试编写执行以下操作的嵌套if语句:

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

否则

如果C19 =是或C20 =是,C22 =是,那么C30 =是

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

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

任何想法?

感谢。

3 个答案:

答案 0 :(得分:3)

假设如果他们不符合这些条件中的任何一个,那么什么也不做,那么这应该有效

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

答案 1 :(得分:0)

你可以这样做,以迎合

  • 常见测试C30="Yes" (即提供"C22<>Yes"
  • C19和C20 的配对测试(即给予"C19 and/or C20 are invalid"
  • 您对C30的两个期望结果(YesNo

更新:看到尼克的回答让我意识到你在第二次测试中确实有过测试

  

= IF(C22 =&#34;是&#34;,IF(AND(C19 =&#34; No&#34;,C20 =&#34; No&#34;),&#34;否&# 34;,IF(或(C19 =&#34;是&#34;,C20 =&#34;是&#34;),&#34;是&#34;,&#34; C19和/或C20无效& #34;)),&#34;&C22 LT;&GT;是&#34)

答案 2 :(得分:0)

IF语句需要进行逻辑测试,有两个值,一个在测试为真时返回,另一个在测试为假时返回。

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

然而,您可以通过在后面的一个或两个值中嵌入后续IF语句来扩展它,这可以递归。例如:

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

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

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