Excel 带有 "AND" 运算符的嵌套 IF 行为异常

Excel nested IF with "AND" operator behaving weird

我在 Excel 电子表格中遇到了一个奇怪的情况。我正在应用一个简单的嵌套 IF 语句,如下所示:

= IF( AND(A1-INT(A1)>=0.3,A1-INT(A1)<=0.7),INT(A1)+0.5,
    IF( AND(A1-INT(A1)>=0,A1-INT(A1)<=0.2),INT(A1),
        IF( AND(A1-INT(A1)>=0.8,A1-INT(A1)<=0.9),INT(A1)+1, "NON-CHECKED"    )
       )
    )

假设如果 "A1" 包含一个值 32.9,结果应该是 33。它工作正常直到值“63.9”。一旦 A1 包含值“64.9”,它就不会检查最后一个条件并打印出 "NON-CHECKED".

奇怪的是,它在值为 63.9 之前一直工作正常,然后开始变为 FALSE。

我也在 Office Suit 和 Google 文档中尝试了相同的公式。

我是不是遗漏了什么?

您可以在这里测试公式:

Sample Spreadsheet

谢谢。

请尝试将 A1-INT(A1) 替换为 ROUND(MOD(A1,1),10)。这似乎适用于小于 10^9 的数字。如果你使用更高的数字,你应该降低精度。

你不是四舍五入到最接近的 0.5 吗? MROUND 函数执行此操作

=MROUND(A1,0.5)