Excel 数据舍入
- Home
- 资源
- 用户手册
- thinkcell Core:演示文稿基础
- Excel 工具
- Excel 数据舍入
内置的 Excel 舍入工具可能会让计算结果看起来不正确,因为 Excel 只能逐个考虑每个单元格的值。thinkcell Excel 数据舍入函数会从整体上考虑计算,并以尽可能减小与精确值偏差的方式进行舍入,同时在数学上可行的情况下,确保使用舍入后的值仍能保持计算正确。
thinkcell round 简介
为报告或 PowerPoint 演示文稿汇总数据时,Excel 中的求和舍入是一个常见问题。通常我们希望舍入后的总计与舍入后各加数的总和完全一致,但这很难实现。例如,请看下表:
使用 Excel 的“设置单元格格式”功能将数值舍入为整数后,会得到下表。看起来“计算错误”的总计以粗体显示:
同样,使用 Excel 的标准舍入函数时,舍入后数值的总计计算是正确的,但舍入误差会不断累积,结果往往与原始数值的实际总计相差较大。下表显示了上述示例使用 =ROUND(x,0) 后的结果。与原始值偏差为 1 或以上的总计以粗体显示:
使用 thinkcell round,您可以在极少“调整”的情况下获得一致的舍入总计:大多数数值会舍入到最接近的整数,少数数值则向相反方向舍入,从而保持计算正确且不累积舍入误差。由于通过更改数值来实现正确舍入总计的方式有很多,软件会选择需要更改的数值数量最少、且与精确值偏差最小的方案。例如,将 10.5 向下舍入为 10,比将 3.7 向下舍入为 3 更合适。下表显示了上述示例的最优方案,其中“调整”过的数值以粗体显示:
要在自己的计算中实现此输出,只需选择相关的 Excel 单元格区域。然后,在 Formulas 选项卡上点击
使用 thinkcell round
thinkcell round 可无缝集成到 Microsoft Excel 中,提供一组类似于 Excel 标准舍入函数的函数。您可以使用 Formulas 选项卡中的 thinkcell round 功能区组,轻松将这些函数应用到自己的数据。
舍入参数
与 Excel 函数一样,thinkcell 舍入函数需要两个参数:
|
x |
要舍入的值。它可以是常量、公式或对其他单元格的引用。 |
|
n |
舍入精度。此参数的含义取决于您使用的函数。thinkcell 函数的参数与对应的 Excel 函数相同。示例请参见下表。 |
thinkcell round 不仅可以舍入为整数值,还可以舍入为任意倍数。例如,如果您想以 5-10-15-... 的步长呈现数据,只需舍入为 5 的倍数即可。使用 thinkcell round 工具栏中的下拉框,直接输入或选择所需的舍入精度。thinkcell round 会为您选择合适的函数和参数。下表列出了一些示例,展示使用工具栏对特定 x 值进行舍入时对应的 n 参数。
|
x =n = |
100 |
50 |
2 |
1 |
0.01 |
|---|---|---|---|---|---|
|
1.018 |
0 |
0 |
2 |
1 |
1.02 |
|
17 |
0 |
0 |
18 |
17 |
17.00 |
|
54.6 |
100 |
50 |
54 |
55 |
54.60 |
|
1234.1234 |
1200 |
1250 |
1234 |
1234 |
1234.12 |
|
8776.54321 |
8800 |
8800 |
8776 |
8777 |
8776.54 |
如果数值没有按预期方式显示,请确认 Excel 单元格格式设置为 General,且列宽足以显示所有小数位。
|
按钮 |
公式 |
说明 |
|---|---|---|
|
|
|
让 thinkcell round 决定舍入到两个最接近倍数中的哪一个,以尽量减少舍入误差。 |
|
|
|
强制将 x 远离零舍入。 |
|
|
|
强制将 x 朝零舍入。 |
|
|
|
强制将 x 舍入到所需精度的最接近倍数。 |
|
|
从所选单元格中移除所有 thinkcell round 函数。 |
|
|
|
选择或输入所需的舍入倍数。 |
|
|
|
突出显示所有被 thinkcell 决定舍入到两个最接近倍数中较远一个、而不是最接近一个的单元格。 |
为了获得最佳结果,并尽可能减少与基础数值的偏差,应尽可能使用 TCROUND。只有在必须时,才使用限制更严格的函数 TCROUNDDOWN、TCROUNDUP 或 TCROUNDNEAR。
注意: 切勿在任何 TCROUND 公式中使用 RAND() 这类非确定性函数。如果函数每次求值都会返回不同的值,thinkcell round 在计算数值时就会出错。
计算布局
上述示例中的矩形布局仅用于演示。您可以使用 TCROUND 函数来确定 Excel 工作表中任意位置分布的求和结果的显示方式。Excel 对其他工作表的三维引用以及指向其他文件的链接也同样适用。
TCROUND 函数的位置
由于 TCROUND 函数用于控制单元格的输出,因此它们必须是最外层函数:
|
错误: |
|
|
正确: |
|
|
错误: |
|
|
正确: |
|
如果您输入了类似错误示例的内容,thinkcell round 会通过 Excel 错误值 #VALUE! 提醒您。
thinkcell round 的限制
对于包含小计和总计的任意求和,thinkcell round 始终都能找到解决方案。对于涉及乘法和数值函数的一些其他计算,thinkcell round 也能提供合理的解决方案。但出于数学原因,一旦使用 +、- 和 SUM 以外的运算符,就无法保证一定存在一致舍入的解决方案。
与常量相乘
在许多情况下,当涉及常量乘法时,thinkcell round 能产生良好结果,也就是说,最多只有一个系数来自另一个 TCROUND 函数的结果。请看以下示例:
单元格 C1 的精确计算为 3×1.3+1.4=5.3。将数值 1.4 向上舍入为 2 即可得到此结果:
但是,thinkcell round 只能通过向上或向下舍入来“调整”。不支持与原始值进一步偏离。因此,对于某些输入值组合,无法找到一致舍入的解决方案。在这种情况下,函数 TCROUND 会求值为 Excel 错误值 #NUM!。以下示例展示了一个无解的问题:
单元格 C1 的精确计算为 6×1.3+1.4=9.2。对单元格 A1 和 B1 进行舍入会得到 6×1+2=8 或 6×2+1=13。实际结果 9.2 无法舍入为 8 或 13,thinkcell round 的输出如下:
注意: Excel 函数 AVERAGE 会被 thinkcell round 解释为求和与常量乘法的组合。此外,如果同一个加数在求和中出现多次,在数学上等同于常量乘法,因此无法保证一定存在解决方案。
一般乘法和其他函数
只要所有相关单元格都使用 TCROUND 函数,且中间结果仅通过 +、-、SUM 和 AVERAGE 连接,加数以及(中间)总计就会被整合到一个舍入问题中。在这些情况下,如果存在解决方案,thinkcell round 会找到一个能在所有相关单元格中保持一致的解决方案。
由于 TCROUND 是普通的 Excel 函数,因此可以与任意函数和运算符组合使用。但当您使用上述以外的函数来连接 TCROUND 语句的结果时,thinkcell round 无法将各组成部分整合为一个相互关联的问题。相反,公式中的各组成部分会被视为不同的问题并分别独立求解。然后,结果会作为输入用于其他公式。
在许多情况下,thinkcell round 的输出仍然是合理的。不过,在某些情况下,使用 +、-、SUM 和 AVERAGE 以外的运算符,会导致舍入结果与未舍入计算的结果相差很大。请看以下示例:
在此情况下,单元格 C1 的精确计算应为 8.7×1.7=14.79。由于单元格 A1 和单元格 B1 通过乘法连接,thinkcell round 无法将这些单元格中的公式整合到一个共同问题中。相反,在将单元格 A1 识别为有效输入后,单元格 B1 会被独立求值,其输出会在剩余问题中作为常量使用。由于没有进一步约束,单元格 B1 中的值 1.7 会舍入到最接近的整数,即 2。
此时,单元格 C1 的“精确”计算为 8.7×2=17.4。这就是 thinkcell round 现在尝试求解的问题。存在一个一致的解决方案,需要将 17.4 向上舍入为 18。结果如下:
请注意,单元格 C1 中的舍入值为 18,与原始值 14.79 相差很大。
排查 TCROUND 公式问题
使用 thinkcell round 时,您可能会遇到两种错误结果:#VALUE! 和 #NUM!。
#VALUE!
#VALUE! 错误表示存在语法问题,例如公式输入错误或参数不正确。另外,请注意使用正确的分隔符:例如,在英文版 Excel 中公式写作:=TCROUND(1.7, 0),而在本地化的德文版 Excel 中则必须写作 =TCROUND(1,7; 0)。
另一个 thinkcell round 特有的错误是 TCROUND 函数调用的位置:不能在另一个公式中使用 TCROUND 函数。请确保 TCROUND 是单元格公式的最外层函数。(请参阅 TCROUND 函数的位置)
#NUM!
#NUM! 错误由数值问题导致。当 TCROUND 函数的输出为 #NUM! 时,表示给定公式集所描述的问题在数学上无解。(请参阅 thinkcell round 的限制)
只要由 TCROUND 函数包围的公式仅包含 +、- 和 SUM,且所有 TCROUND 语句使用相同的精度(第二个参数),thinkcell round 就保证存在并能找到一个解。但是,在以下情况下,无法保证存在一致舍入的解:
- 公式涉及其他运算,例如乘法或数值函数。此外,同一个加数出现多次的求和在数学上等同于乘法。
- 你在
TCROUND函数的第二个参数中使用了不同精度。 - 你频繁使用特定函数
TCROUNDDOWN、TCROUNDUP和TCROUNDNEAR。
你可以尝试重新表述问题,以获得一致的解。请尝试以下方法:
- 对部分或全部
TCROUND语句使用更高精度。 - 不要将
TCROUND与乘法或除 +、- 和SUM之外的数值函数一起使用。 - 对所有
TCROUND语句使用相同精度(第二个参数)。 - 在可行的情况下,使用
TCROUND代替更具体的函数TCROUNDDOWN、TCROUNDUP和TCROUNDNEAR。
需要排查问题吗?
查看我们的知识库