为什么这个嵌套的IF语句没有返回我的预期值?

时间:2014-11-19 16:22:00

标签: excel if-statement

我在Excel中尝试此公式。 这个嵌套的IF语句没有返回我想要的值。语句中的单元格可以介于1.000和0.000之间。如果单元格中的值等于1,则它总是返回" 1"的值,如果它小于1,它总是返回" 3"的值,即使值为0.这个IF语句我错过了什么?

=IF(F5=1,"4",
    IF(1>F5>=0.9,"3",
        IF(0.9>F5>=0.75,"2",
            IF(0.75>F5>=0.55,"1",
                IF(F5<0.5,"0")))))

4 个答案:

答案 0 :(得分:1)

要在excel中的范围之间进行,可以使用AND(logical1, [logical2], ...)

来完成
IF(AND(XXX>=YYY,XXX<=ZZZ)...

所以你的支票看起来像是

IF(AND(F5>=0.9,f5<1)...

答案 1 :(得分:0)

我要猜测..你在if条件中不能有1> f5&gt; = 0.9这样的东西,因为它可能从左到右评估,(1> f5 == true),(true&gt; = 0.9 == true)因此你总是得到3。

答案 2 :(得分:0)

Excel将True编号为1,将False编号为0。因此1>F5>=0.9被解析为(1>F5)>=0.9。这变为True >= 0.9,与1 >= 0.9 True相同。

正如epascarello指出的那样,您可以使用AND(F5>=0.9,f5<1)正确创建间隔检查。

答案 3 :(得分:0)

以下是更正的公式。

=IF(F5=1,"4",IF(AND(1>F5,F5>=0.9),"3",IF(AND(0.9>F5,F5>=0.75),"2",IF(AND(0.75>F5,F5>=0.55),"1",IF(F5<0.5,"0","ENTER_A_VALUE_HERE")))))

在IF语句中执行2次逻辑运算时,请使用AND(expression1,expression2,.... expression N)格式。

您应该能够查看上面的更正功能并查看差异。

参考:http://www.techonthenet.com/excel/formulas/if.php