【发布时间】:2018-05-25 19:15:56
【问题描述】:
我在 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,则单元格 = X
如果单元格 Q2 到 U2 中的任何一个 = 日期格式,则单元格 = Δ
如果 Q2 到 U2 = O,则单元格 = O
如果不满足任何条件,则单元格的值为“FALSE”。 (默认出现)
每个单元格都有这个条件要遵循,
- 如果单元格 Q2 到 U2 中的任何一个 = -,则忽略该单元格并计算其他单元格以获得最终结果。
我尝试在原始公式中切换到 Or 来测试条件 1 和 3。
=IF((Q2="O")*or(R2="O")*or(S2="O")*or(T2="O")*or(U2="O"),"O","X")
但它不起作用。另外,我也不确定如何执行条件 5。有什么帮助吗?
仅使用 Excel 公式就可以完成如此复杂的事情吗?还是我需要进入 VBA?
【问题讨论】:
-
条件 4 的“计数”是什么意思?你的意思是得到没有
-的单元格数? -
意思是忽略
-的单元格并得到最终结果。例如,如果 U2 =-,则对单元格 Q2 到 T2 执行条件 1,2 或 3。 -
简单回答:不要。嵌套的 IF 往往会带来很多问题,尤其是当您(或其他人)想要稍后维护文档时。
-
更长的答案:如果业务规则如此复杂,一些业务用户会想知道规则的哪一部分导致了结果。因此,将其拆分并将临时结果(具有业务价值)放在额外的单元格中可能是个好主意。额外效果是维护变得更容易。
-
最后 3 条规则的确切优先级是多少? 3-2-4 还是 3-4-2 还是 4-3-2?
标签: excel excel-formula