Excel SUM 不等于手动输入的值

Excel SUM 不等于手动输入的值

Excel 屏幕截图

在上面的 Excel 截图中,我打开了我银行的资金交易 CSV 文件。交易日期在 列中A,金额在 中B,银行计算的余额在 中。我在( )D列中计算我自己的运行余额,并且 列突出显示以指示任何差异(不幸的是,正如截图所示,Excel 显示不等于。F=SUM($A$2:An)H=IF( Dn = "", TRUE, Fn=Dn )£898.15£898.15

我想看看是否存在舍入误差,因此在列中K我设置了公式=Dn-Fn,然后扩大了显示的小数位数。结果显示有一分钟的误差-0.00000000000272848

问题 1:这个无关紧要的错误从何而来,为什么 Excel 突然认为第 206 行的值不同?

问题 2:其他行也有相同的差异(例如 188 和 184 与行 206),那么为什么 Excel 突然抱怨?

问题 3:为什么 Excel 不将货币值视为整数值而不是浮点数,这样根本不应该出现任何错误。

答案1

当您在 Excel 中输入数字时,它们会被转换为内部二进制表示形式,例如,8.25会被转换为1000.01,但8.26会变成1000.01000010100011110101110000101000

当您开始在 Excel 中添加数字时,您输入的十进制数字会转换为二进制,总和以二进制计算,然后再转换为十进制。这时,您就会得到一些不准确的数字,例如,-0.00000000000272848您的数字与 Excel 的数字之间存在差异。您需要将该金额乘以数十亿才能得到不同的美分金额。

因此,测试应该是=IF(ABS(Calculated-Real)<0.01,"OK","Not Equal")。除非我们有十进制计算机,否则在任何二进制数字计算机中都会遇到此错误。

答案2

  1. 微小的误差可能是由于四舍五入造成的。您只能在银行的列中看到两位小数,但可能还有更多,请尝试增加那里的小数位数。
  2. excel 识别的最小差异不是绝对值,而是与比较的数字的大小有关。您可以阅读更多这里
  3. 使用浮点数的原因通常是覆盖范围的灵活性更大,但我认为现在这并不重要,因为我们无法改变它。

答案3

这是浮点算术错误的典型例子。它是由 Excel 对数字的解释方式引起的,既是 sum 函数的因果关系,也是您手动执行的方式。在 sum 函数完成后,结果很可能被存储为浮点数,这(如您所见)与实际的手动计算并不完全匹配。

相关内容