22. Excel 数据舍入

针对报告或 PowerPoint 演示文稿对数据进行编译时,Excel 中的舍入合计是常见的问题。总计的舍入值与舍入加数的总计精确相符通常是理想的结果,但很难实现。例如,请考虑以下表格:

Excel 中的精确值示例.

使用 Excel 的 Format-Cell 函数将值舍入到整数时,会产生以下表格。似乎“算错”的总计以粗体显示:

使用 Excel 的 Format-Cell 函数进行舍入.

同样,若使用 Excel 的标准舍入函数,会正确计算舍入值的总计,但舍入误差会累积,结果通常会显著偏离原始值的实际总计。以下表格显示了上述示例的 =ROUND(x,0) 结果。与原始值的偏差幅度至少为 1 的总计以粗体显示:

Excel 中 ROUND 函数的使用示例.

使用 think-cell 舍入,您可以实现经过一致舍入且包含“欺骗”最少的总计:将多数值舍入到最接近的整数,并将少数值以相反的方向舍入,从而保持正确的计算,同时不会累积舍入误差。通过更改值来实现正确舍入总计的可能性很大,因此软件挑选的解决方案需要采用最小数量的更改值和与精确值的最小偏差。例如,将 10.5 向下舍入到 10 比将 3.7 向下舍入到 3 更可取。以下表格显示了上述示例的最佳解决方案,其中“欺骗”值以粗体显示:

think-cell 舍入示例.

若要在我们的计算中实现此输出,只需选择有关的 Excel 单元格范围即可。然后,点击 image. 公式选项卡上的按钮,在需要时使用工具栏的下拉框调整舍入精度。

22.1
使用 think-cell 舍入
22.2
think-cell 舍入的限制
22.3
TCROUND 公式疑难解答

22.1 使用 think-cell 舍入

think-cell 舍入可无缝集成到 Microsoft Excel 中,从而提供与 Excel 的标准舍入函数类似的一组函数。您可以使用公式选项卡上的 think-cell 舍入功能区组,将这些函数轻松地应用到您自己的数据。

Excel 2010 和更新版本中的 think-cell 舍入功能区.

22.1.1 舍入参数

与 Excel 函数一样,think-cell 舍入函数使用两个参数:

X=
将接受舍入的值。该值可以是常数、公式或对其他单元格的引用。
n=
舍入精度。此参数的含义取决于您使用的函数。think-cell 函数的参数与同等 Excel 函数的参数相同。如需示例,请参阅下表。

think-cell 舍入不仅可以将值舍入到整数,还可以舍入到倍数。例如,若您希望以 5-10-15-...的步长显示数据,只需将值舍入到五的倍数即可。使用 think-cell 舍入工具栏中的下拉框,只需输入或选择所需的舍入精度即可。think-cell 舍入会为您选择适当的函数和参数。下表提供了使用工具栏及其特定 n 参数的某些 x 值舍入示例。

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 单元格格式”设为常规,以及列宽是否足以显示所有小数位。

按钮 公式 描述
image. TCROUND(x, n) 使 think-cell 舍入为了最大限度地减少舍入误差而决定将舍入到两个最接近倍数中的哪一个。
image. TCROUNDUP(x, n) 强制对 x 执行向上舍入。
image. TCROUNDDOWN(x, n) 强制对 x 执行向下舍入。
image. TCROUNDNEAR(x, n) 强制将 x 舍入到所需精度的最接近的倍数。
image. 从选择的单元格中删除所有 think-cell 舍入函数。
image. 选择或输入所需的舍入倍数。
image. 对 think-cell 决定将舍入到两个最近倍数中较远的一个(而不是较近的一个)的所有单元格进行突出显示。
image. 转轮表示 think-cell 舍入正在忙碌。

若要获得与基础值的偏差尽可能小的最佳结果,应该尽可能使用 TCROUND。只有在您必须使用限制性更高的函数 TCROUNDDOWNTCROUNDUPTCROUNDNEAR 时,才使用这些函数。

注意:切勿在任何 RAND() 公式内使用诸如 TCROUND 等非确定性函数。若每次对函数进行演算时传回不同的值,think-cell 舍入会在计算值时出错。

22.1.2 计算的布局

以上示例的矩形布局仅供演示。您可以使用 TCROUND 函数确定 Excel 表中任意合计的显示。Excel 中对其他表的 3-D 引用以及其他文件的链接也有效。

22.1.3 TCROUND 函数的放置位置

由于 TCROUND 函数将控制单元格的输出,因此必须是最外层的函数:

不良: =TCROUND(A1, 1)+TCROUND(SUM(B1:E1), 1)
良好: =TCROUND(A1+SUM(B1:E1), 1)
 
不良: =3*TCROUNDDOWN(A1, 1)
良好: =TCROUNDDOWN(3*A1, 1)

若您输入了类似不良示例的内容,think-cell 舍入会使用 Excel 错误值 #VALUE! 通知您。

22.2 think-cell 舍入的限制

think-cell 舍入会始终针对任何合计(包含小计与总计)寻找解决方案。think-cell 舍入也会针对涉及乘法函数和数值函数的其他一些计算提供合理解决方案。但是,出于数学原因,在使用除 +、- 和 SUM 外的运算符时,不保证存在一致舍入的解决方案。

22.2.1 与常数相乘

在许多情况下,涉及到常数相乘(即其中最多一个系数源自其他 TCROUND 函数)时,think-cell 舍入会产生良好的结果。请考虑以下示例:

在 think-cell 舍入中与常数相乘.

单元格 C1 的精确计算是 3×1.3+1.4=5.3。将值 1.4 向上舍入到 2 可以满足此结果:

使用 think-cell 舍入 (TCROUND) 的舍入示例.

但是,只有在向上舍入或向下舍入时,think-cell 舍入才会“欺骗”。不支持进一步偏离原始值。因此,对于输入值的特定组合,找不到一致舍入的解决方案。在此情况下,函数 TCROUND 将对 Excel 误差值进行演算 #NUM!。以下示例展示了无法解答的计算题:

think-cell 舍入中不一致的舍入.

单元格 C1 的精确计算是 6×1.3+1.4=9.2。对单元格 A1 和 B1 进行舍入,将产生计算 6×1+2=8 或 6×2+1=13。无法将实际结果 9.2 舍入到 8 或 13,think-cell 舍入的输出类似于如下所示:

think-cell 舍入中的 #NUM! 误差.

注释:think-cell 舍入将 Excel 函数 AVERAGE 解释为合计与常数乘积的组合。此外,若同一个加数在合计中出现多次,则合计在数学方面等价于常数相乘,不保证存在解决方案。

22.2.2 一般乘法与其他函数

只要将 TCROUND 函数用于所有相关单元格,且中间结果仅由 +、-、SUMAVERAGE 连接,则加数和(中间)总计将集成到单一舍入计算题中。在这些情况下,think-cell 舍入将寻找能在涉及的所有单元格中提供一致性的解决方案(若存在)。

由于 TCROUND 是常规 Excel 函数,因此能与任意函数及运算符进行组合。但是,若您使用以上所述之外的函数来连接 TCROUND 语句的结果,则 think-cell 舍入无法将这些组件集成到一个互连计算题中。相反,会将公式的这些组件视为将被独立解答的不同计算题。随后会将结果用作其他公式的输入。

在许多情况下,think-cell 舍入的输出仍是合理的。但是在有些情况下,使用 +、-、SUMAVERAGE 之外的运算符会导致舍入的结果与非舍入计算的结果之间产生很大偏差。请考虑以下示例:

因公式使用不正确而产生的舍入影响.

在此情况下,单元格 C1 的精确计算将是 8.7×1.7=14.79。由于单元格 A1 和 B1 以乘号连接,因此 think-cell 舍入无法将这些单元格中的公式集成到共同的计算题中。相反,会在将 A1 检测为有效输入后,对单元格 B1 进行独立演算,将输出作为其余计算题中的常数。由于不存在进一步的限制,因此会将单元格 B1 中的值 1.7 舍入到最近的整数,也就是 2。

现在,单元格 C1 的“精确”计算是 8.7×2=17.4。这是 think-cell 舍入当前尝试解答的计算题。存在一致的解决方案,它需要将 17.4 向上舍入到 18。结果类似于如下所示:

使用 think-cell 舍入执行舍入和相乘.

请注意单元格 C1 中舍入的值是 18,它与原始值 14.79 相比差异很大。

22.3 TCROUND 公式疑难解答

使用 think-cell 舍入时,您可能会遇到两种错误结果,分别是 #VALUE!#NUM!

22.3.1 #VALUE!

#VALUE! 错误值暗示存在句法问题,例如,公式输入错误或参数不良。此外,请注意使用正确的分隔符:例如,在国际 Excel 中,公式如下所示:=TCROUND(1.7, 0),在本地化的德语版 Excel 中,它必须写成 =TCROUND(1,7; 0)

think-cell 舍入的另一项特有错误是 TCROUND 函数调用的放置位置:您不可在其他公式中使用 TCROUND 函数。请确保 TCROUND 是单元格公式中最外层的函数。(请参阅 TCROUND 公式的放置位置

22.3.2 #NUM!

#NUM! 错误由数字问题导致。若 TCROUND 函数的输出是 #NUM!,意味着由指定的一组公式构成的计算题在数学上无法解答。(请参阅 think-cell 舍入的限制

只要 TCROUND 函数所包含的公式只包括 +、- 和 SUM 运算符,且所有 TCROUND 语句具有共同的精度(第二个参数),则解决方案一定存在,且 think-cell 舍入会找到该解决方案。但是在以下情况下,不保证存在一致舍入的解决方案:

  • 公式包含诸如相乘或数值函数等其他运算。此外,若同一个加数在合计中出现多次,则合计在数学方面等价于相乘。
  • 您在 TCROUND 函数的第二个参数中使用不同的精度。
  • 您频繁使用特定函数 TCROUNDDOWNTCROUNDUPTCROUNDNEAR

您可以尝试重新说明计算题以获得一致的解决方案。请尝试以下操作:

  • 对于部分或全部 TCROUND 语句使用更精细的精度。
  • 不将 TCROUND 与除 +、- 和 SUM 之外的相乘或数值函数搭配使用。
  • 对所有 TCROUND 语句使用相同精度(第二个参数)。
  • 在可能时,使用 TCROUND 而不是特定性更高的函数 TCROUNDDOWNTCROUNDUPTCROUNDNEAR

分享