如何在Excel中创建复杂的嵌套If语句?

时间:2017-12-12 07:00:21

标签: excel excel-formula

我在Excel中有一个If公式,如下所示:

=IF((Q2="O")*AND(R2="O")*AND(S2="O")*AND(T2="O")*AND(U2="O"),"O","X")

基本上,如果Q2到U2的单元格为O,则具有公式的单元格将写入O.否则它将具有X.现在我想由于新条件将其更改为嵌套的If语句。

这些条件依次为:

  1. 如果单元格Q2至U2中的任何一个= X,则单元格= X

  2. 如果单元格Q2到U2中的任何一个=日期格式,则单元格=Δ

  3. 如果Q2到U2 = O,则单元格= O

  4. 如果没有满足任何条件,则单元格的值为“FALSE”。 (出现默认值)

  5. 每个细胞都有这样的条件,

    1. 如果单元格Q2到U2中的任何一个= - ,则忽略该单元格并计算其他单元格以获得最终结果。
    2. 我尝试在我的原始公式中切换到Or来测试条件1和3。

      =IF((Q2="O")*or(R2="O")*or(S2="O")*or(T2="O")*or(U2="O"),"O","X")
      

      但它不起作用。另外,我不知道如何做条件5。有什么帮助吗?

      使用Excel公式可以做一些如此复杂的事情吗?或者我需要进入VBA吗?

1 个答案:

答案 0 :(得分:1)

如果您按优先顺序解决问题,这样的事情通常会更容易。看起来1具有最高优先级:

=IF(COUNTIF(Q2:U2,"X")>0,"X","Does not contain X")

COUNTIF(Q2:U2,"X")会返回X范围内Q2:U2的出现次数。

代替"不包含X",我们可以先检查条件2:

=IF(SUMPRODUCT(--ISNUMBER(Q2:U2))>0,"∆","Does not contain X or dates")

excel中的日期实际上是带有一些装饰格式的数字。我使用ISNUMBER查找数字,SUMPRODUCT计算范围内已识别的单元格。如果大于0(至少为1),则它将变为

代替"不包含X或日期"现在,我们可以检查O s。我会计算O s并添加-(条件3和5一起)的单元格,看看它们是否加起来Q2:U2中的总单元格(在这种情况下为5) ):

=IF(COUNTIF(Q2:U2,"O")+COUNTIF(Q2:U2,"-")=5,"O","FALSE")

合并后,它将成为:

=IF(COUNTIF(Q2:U2,"X")>0,"X",IF(SUMPRODUCT(--ISNUMBER(Q2:U2))>0,"∆",COUNTIF(Q2:U2,"O")+COUNTIF(Q2:U2,"-")=5,"O","FALSE"))

由于所有这些都涉及到计数,因此设置帮助列可能更容易,例如:

   | Q | R | S | T | U |       V    |        W       |     X      |     Y      |     Z
1  |   |   |   |   |   | Count of X | Count of dates | Count of O | Count of - | Final value
2  |   |   |   |   |   |       A    |        B       |     C      |     D      |     E

A将是:

=COUNTIF(Q2:U2,"X")

B将是:

=SUMPRODUCT(--ISNUMBER(Q2:U2))

C将是:

=COUNTIF(Q2:U2,"O")

D将是:

=COUNTIF(Q2:U2,"-")

E将是:

=IF(V2>0,"X",IF(W2>0,"∆",X2+Y2=5,"O","FALSE"))