2012-02-01 108 views
0

我试图做写一个嵌套的if语句执行以下操作:Excel的逻辑和if语句

IF C19 =否,C20 =否,C22 =是那么C30 =无

其他

IF C19 = Yes或C20 = Yes和C22 =是那么C30 =是

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

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

任何想法?

谢谢。

+0

我想你还有其他一些排列失踪,使整个陈述未完成。另外,将你的逻辑分组到第二点。是((C19 =是或C20 =是)和C22 =是),或者是((C19 =是或(C20 =是且C22 =是) – Dave 2012-02-01 09:44:04

+0

感谢通灵的建议,一些排列失踪,但我相当肯定他们不需要处理。它是((C19 =是或C20 =是)并且C22 =是),那么C30 =是 – Ckeane 2012-02-01 09:47:54

回答

0

你可以做这样的迎合

  • 公共测试C30="Yes"得到满足(即给"C22<>Yes"
  • 为C19 AMD C20 得到满足两个配对测试(即给出"C19 and/or C20 are invalid"
  • 您对C30的两个期望结果(YesNo

更新:看到尼克的回答让我意识到,你确实有一个或测试你的第二个测试

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

3

假设,如果他们不符合这些条件,然后什么都不做,那么这应该工作

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

对于第一个正确答案+1,虽然我确实建议标记哪个部分没有给出预期结果而不是“”catchall – brettdj 2012-02-01 10:40:52

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语句中即可。