多个IF AND语句优于

时间:2013-04-02 00:08:13

标签: excel

我需要在Excel中根据两个不同单元格中的文本编写“if”语句。

If E2 ='in play'   and F2 ='closed'      output 3 
If E2= 'in play'   and F2 ='suspended'   output 2
If E2 ='In Play'   and F2 ='Null'        output 1 
If E2 ='Pre-Play'  and F2 ='Null'        output -1
If E2 ='Completed' and F2 ='Closed'      output 2
If E2 ='Suspended' and F2 ='Null'        output 3
If anything else output -2

其中Null在单元格中没有值

我试图使用下面的代码执行此操作但似乎无法让两个或更多IF AND语句一起工作。我该如何解决这个问题?

=IF(AND(E2="In Play",F2="Closed"),3, -2), IF(AND(E2="In Play",F2=" Suspended"),3,-2)

4 个答案:

答案 0 :(得分:18)

考虑您有多个“测试”,例如

  1. 如果E2 ='正在播放'且F2 ='关闭',则输出3
  2. 如果E2 ='正在播放'且F2 ='暂停',则输出2
  3. 等。
  4. 您真正需要做的是将连续测试放在False参数中。您现在正尝试用逗号分隔每个测试,但这不起作用。

    你的前三个测试都可以加在一个表达式中,如:

    =IF(E2="In Play",IF(F2="Closed",3,IF(F2="suspended",2,IF(F2="Null",1))))

    记住每个连续的测试需要是前面测试的嵌套FALSE参数,你可以这样做:

    =IF(E2="In Play",IF(F2="Closed",3,IF(F2="suspended",2,IF(F2="Null",1))),IF(AND(E2="Pre-Play",F2="Null"),-1,IF(AND(E2="completed",F2="closed"),2,IF(AND(E2="suspended",F2="Null"),3,-2))))

答案 1 :(得分:10)

使用你的AND,你不应该有一个FALSE值-2,直到最后,例如只有2个ANDs

=IF(AND(E2="In Play",F2="Closed"),3,IF(AND(E2="In Play",F2=" Suspended"),3,-2))

尽管使用嵌套的IF和AND组合可能会更好 - 尝试使用完整的公式:[编辑 - 感谢大卫]

=IF(E2="In Play",IF(F2="Closed",3,IF(F2="Suspended",2,IF(F2="Null",1))),IF(AND(E2="Pre-play",F2="Null"),-1,IF(AND(E2="Completed",F2="Closed"),2,IF(AND(E2="Pre-play",F2="Null"),3,-2))))

为了避免像上面这样的长公式,您可以在像K2:K5这样的列中创建一个包含所有E2可能性的表,并且像L1中的所有F2可能性一样:N1然后在L2:N5中填写所需的结果并使用这个公式

=INDEX($L$2:$N$5,MATCH(E2,$K$2:$K$5,0),MATCH(F2,$L$1:$N$1,0))

答案 2 :(得分:1)

尝试以下方法:

=IF(OR(E2="in play",E2="pre play",E2="complete",E2="suspended"),
IF(E2="in play",IF(F2="closed",3,IF(F2="suspended",2,IF(ISBLANK(F2),1,-2))),
IF(E2="pre play",IF(ISBLANK(F2),-1,-2),IF(E2="completed",IF(F2="closed",2,-2),
IF(E2="suspended",IF(ISBLANK(F2),3,-2))))),-2)

答案 3 :(得分:-1)

让这两个人沟通

=IF(OR(AND(MID(K27,6,1)="N",(MID(K27,6,1)="C"),(MID(K27,6,1)="H"),(MID(K27,6,1)="I"),(MID(K27,6,1)="B"),(MID(K27,6,1)="F"),(MID(K27,6,1)="L"),(MID(K27,6,1)="M"),(MID(K27,6,1)="P"),(MID(K27,6,1)="R"),(MID(K27,6,1)="P"),ISTEXT(G27)="61"),AND(RIGHT(K27,2)=G27)),"Good","Review")

=IF(AND(RIGHT(K27,2)=G27),"Good","Review")