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 文档中尝试了相同的公式。
我是不是遗漏了什么?
您可以在这里测试公式:
谢谢。
请尝试将 A1-INT(A1) 替换为 ROUND(MOD(A1,1),10)。这似乎适用于小于 10^9 的数字。如果你使用更高的数字,你应该降低精度。
你不是四舍五入到最接近的 0.5 吗? MROUND
函数执行此操作
=MROUND(A1,0.5)
我在 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 文档中尝试了相同的公式。
我是不是遗漏了什么?
您可以在这里测试公式:
谢谢。
请尝试将 A1-INT(A1) 替换为 ROUND(MOD(A1,1),10)。这似乎适用于小于 10^9 的数字。如果你使用更高的数字,你应该降低精度。
你不是四舍五入到最接近的 0.5 吗? MROUND
函数执行此操作
=MROUND(A1,0.5)