因此,正如标题所述,我的公式返回了一些输出,但对于其他输出,它只输出 0,即 false 时的值。也许我有太多嵌套的 AND 函数。任何分析和帮助都将不胜感激!
公式:=IF(E3="O-1",AND(C3>=3,C3<=3.49)*800,IF(E3="O-3",AND(C3>=3.75)*700,IF(E3="O-2",AND(C3>=3.5,C3<=3.74)*800,IF(E3="O-3",AND(C3>=3.5,C3<=3.74)*500,IF(E3="O-1",AND(C3>=3.5,C3<=3.74) *1100,如果(E3="O-1",并且(C3>=3.75)*1300,如果(E3="总统",4900,如果(E3="O-2",并且(C3>=3,C3<=3.49)*700,如果(E3="O-2",并且(C3>=3.75)*1000,如果(E3="O-3",并且(C3>=3,C3<=3.49)*400,0)))))))))))
答案1
如果你能
- 解释你正在尝试实现什么样的逻辑树,以及
- 给出一个公式计算结果不是您想要的值的条件示例(并说出您想要的值)。
另外,调试此类问题的一种常用方法是简化您所拥有的内容,直到
- 可以一眼读懂,或者
- 问题消失了(在这种情况下,你知道你所做的最后一次简化更改已经消除了有问题的代码)。
你的公式开始
=IF(E3="O-1", AND(C3>=3,C3<=3.49)*800, …
这意味着,如果E3
等于"O-1"
,表达式的计算结果为AND(C3>=3,C3<=3.49)*800
。如果C3
小于3
,C3>=3
则为 FALSE。如果C3
大于3.49
,C3<=3.49
则为 FALSE。无论哪种情况,AND(C3>=3,C3<=3.49)
计算结果都为 FALSE,数值上等于 0,因此AND(C3>=3,C3<=3.49)*800
为零。
因此,如果E3
等于"O-1"
且C3
小于3
,则此公式计算结果为 0 是正确的。(这只是其中之一许多导致这种结果的复合条件。)这符合您的情况吗?
另外,你的公式真的真的没有意义。它包含
=IF(…, IF(E3="O-3", …, IF(E3="O-3", …
第二个测试E3="O-3"
永远不会得到满足。(这不是表达式中唯一冗余/无法到达的部分。)