如何在Excel中创build复杂的嵌套的If语句?
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语句由于新的条件。
这些条件依次是:
-
如果单元格Q2中的任何一个到U2 = X,cell = X
-
如果单元格Q2至U2中的任何一个=date格式,单元格=Δ
-
如果Q2到U2 = O,则cell = 0
-
如果没有条件满足,单元格将具有值“FALSE”。 (出现默认)
每个单元都有这个条件,
- 如果单元格Q2至U2中的任何一个= – ,则忽略该单元格并计数其他单元格以获得最终结果。
我尝试切换到或在我原来的公式testing条件1和3。
=IF((Q2="O")*or(R2="O")*or(S2="O")*or(T2="O")*or(U2="O"),"O","X")
但它不起作用。 另外我不确定如何做条件5以及。 任何帮助?
只用Excel公式就可以做这么复杂的事情吗? 还是我需要进入VBA?
如果按优先顺序处理问题,这样的事情通常更容易。 看起来像1具有最高优先级:
=IF(COUNTIF(Q2:U2,"X")>0,"X","Does not contain X")
COUNTIF(Q2:U2,"X")
返回范围Q2:U2
中X
的出现次数。
代替“不包含X”,我们可以先检查条件2:
=IF(SUMPRODUCT(--ISNUMBER(Q2:U2))>0,"∆","Does not contain X or dates")
Excel中的date实际上是一些带有装饰格式的数字。 我正在使用ISNUMBER
来查找数字和SUMPRODUCT
来计算在范围内识别的单元格。 如果超过0(至less1),那么它将变成∆
。
现在代替“不包含X或date”,我们可以检查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"))