Excel SUM() 公式不起作用

Excel SUM() 公式不起作用

我有一个复杂的公式:两个 SUMIFS 公式嵌套在一个 SUM 公式中。其概念是将给定特定时间段和特定帐户代码的金额相加。这个公式似乎很管用。我得到一个帐户的金额为 4119.20,另一个帐户的金额为 -4119.20。我的另一个 SUM 公式应该对组进行总计,结果应该是 0,但却显示“9.09495E-13”。

我的组中有六个帐户,其中一个为“0”,显示为“9.09495e-13”。此帐户下根本没有交易。

此外,我尝试删除公式并只输入“0”,但这也导致了“9.0495e-13”组的总和

我意识到这很模糊,但我希望其他人也遇到类似的问题。

编辑 18-07-18-2221: 我的问题图片

答案1

你期待着0.0,但9.0495e-13

9.0495e-130.0,你只需要改变格式。选择单元格然后单击任务栏上的此按钮:

在此处输入图片描述

答案2

您偶然发现的是计算机科学中第一堂课中讲到的课程的变体。这基本上是一个浮点溢出错误(通俗地说是“舍入错误”)。

在 Excel 中,尝试

=SUM(A1:A4) 

和:

A1   10^20
A2   1
A3  -10^20
A4  -1

显然,我们期望答案是0。Excel 会将其显示为-1。您也可以尝试=A1+A2+A3+A4。答案-1仍然是 。现在=A1+A3+A2+A4按该顺序尝试。Excel 现在将给出正确答案0

由于 Excel 存储数字的方式 (IEEE 754),如果您尝试将一个比另一个小很多的数字相加,Excel 会将其丢弃,从而产生错误。在上面的例子中,10^20+1得出10^20。因此,最好先将大小相似的数字相加。

在您的示例中,由于无法用二进制准确表示 4119.2,因此可能还存在舍入误差问题。

出于上述原因,程序员和工程师更愿意将数字存储为整数(整数),而不是浮点数(非整数),因为精度很重要。例如,金融系统对仅使用整数进行计算有严格的规定(例如,美分而不是美元和美分)。同样,时间存储为固定日期的秒数。这种错误的典型例子是第一次海湾战争中爱国者导弹的失败,造成 28 人死亡——0.000000095 秒的误差加上飞毛腿导弹的高速度,足以让爱国者反导系统将飞毛腿导弹视为异常。

在您的情况下,无论出于何种意图和目的,9x10^-13 都是 0(正如其他人指出的那样)!

如果你对此进一步感兴趣,这些第一年的笔记很容易理解

有关的一些信息爱国者导弹失败

相关内容