MS Excel 2007 If Then 公式问题

MS Excel 2007 If Then 公式问题

这是我在使用 MS Excel 2007 时遇到的一个问题的简化案例。

将您的工作表格式化为带有 2 位小数的货币。

细胞A1类型25

电池 A2 类型 20.13

电池A3型 4.87

单元格 B3 输入公式 =A1-A2

单元格 A4 输入公式 =IF(A1-A2=A3,"TRUE","FALSE")

单元格 B4 输入公式 =IF(A3=B3,"TRUE","FALSE")

错误是 A4 显示 FALSE 并且 B4 显示 FALSE

笔记:我首先注意到简化版本存在精度错误。因此,我首先将精度更改为按显示计算,使用指南。这修复了我的简单版本,但我仍然在页面上看到该问题。我将小数的显示更改为 12 位小数,工作表上所有值的第二位小数之后的所有内容均为零。

有谁对我可以尝试修复我的公式/工作表有什么建议吗?

答案1

当使用浮点运算并使用结果进行评估或进一步计算时,最好确保结果具有正确/预期的精度。

确保正确精度的最佳方法是ROUND()在公式中使用。在本例中,它将是=IF(ROUND(A1-A2,2)=ROUND(A3,2),"TRUE","FALSE")

微软建议的第二种方法这里仅确保单元格显示正确的小数。在内部,它们仍然可能略有偏差。使用它进行进一步的重新计算可能会导致更大的不准确性。对于评估,此设置无效。

注意使用“显示精度”选项可能会产生累积计算效果,从而使您的数据随着时间的推移越来越不准确。仅当您确定显示的精度将保持数据的准确性时才使用此选项。

因此,最好的建议是在评估过程中始终使用ROUND()符合预期精度的公式。

相关内容