0

我在 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 Docs 中尝试了相同的公式。

我在这里错过了什么吗?

您可以在这里测试公式:

样本电子表格

谢谢。

4

2 回答 2

1

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

于 2015-03-28T20:48:14.713 回答
0

你不只是四舍五入到最接近的0.5吗?MROUND功能做到这一点

=MROUND(A1,0.5)

于 2015-03-29T01:04:51.093 回答