10

我需要根据两个不同单元格中的文本在 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

4 回答 4

18

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

  1. 如果 E2 = 'in play' 并且 F2 = 'close',输出 3
  2. 如果 E2 = 'in play' 并且 F2 = 'suspended',输出 2
  3. 等等。

您真正需要做的是在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))))

于 2013-04-02T00:37:27.350 回答
10

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

=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:N1 等行中创建所有 F2 可能性然后在 L2:N5 中填写所需的结果并使用此公式

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

于 2013-04-02T00:30:59.107 回答
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)
于 2014-03-19T13:35:46.853 回答
-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")
于 2017-01-26T22:35:22.253 回答