【问题标题】:origin value and after sum after ROUND() is differentROUND() 之后的原始值和求和后的值不同
【发布时间】:2016-03-18 00:58:38
【问题描述】:

我有一个包含“订购金额”、“百分比”和“总金额”的表格。请注意,“订购金额”和“总金额”应相同。

F列= C:F之和
*已使用第 4、6、8、10 行 =round()

如表(图)所示,对于某些数字,F 中的值应该与 A 不同。 (例如 A6(105) 和 F7(104),四舍五入后为 -1)。

有没有办法避免这种情况?

非常感谢。

【问题讨论】:

  • 发生了什么不明显吗?当您四舍五入时,您会丢弃小数点后的所有内容(并可能更改十位数)。
  • 为什么你认为一系列数字的总和应该与同一系列四舍五入的数字的总和相同?
  • 对不起,我不是说应该这样,我需要这样。以“344”为例,我们将344手机分布在4个区域(A、B、C、D)。显然我不能分配 0.7 个电话,所以我会将它四舍五入为 1。通过使用 '=round()',它总共返回 345,因此我将是 1 个电话的短分配。

标签: excel


【解决方案1】:

如果小数点总和大于 5,则您的最终四舍五入数字将四舍五入。如果它们加起来

考虑这个例子:

10.5 + 5 = 15.5, which rounds to 16.

然而

10 + 5 = 15

这就是你的桌子上发生的事情。

【讨论】:

    【解决方案2】:

    为了使四舍五入的数字总和与数字的总和相同,在您的示例中,您不需要四舍五入,而是减去其中一个值。我建议更改最大值,因为它似乎对百分比的影响最小,但这是您可以做出的选择。

    为此,例如,使用第 8 行中的数据,您可以执行以下操作。

    A9: =IF(B$8=MAX($B$8:$E$8),SUM($B$8:$E$8)-SUM(ROUND($B$8:$E$8,0))+ROUND(B$8,0),ROUND(B$8,0))
    

    使用ctrl+shift+enter 作为数组公式输入并向右填充到 E9。

    这将给出 344 的总和,与 F8 相同

    【讨论】:

    • 嗨,Ron 非常感谢您的回答。有什么办法可以这样计算:在B8:F8范围内,如果只有一个xx.5,则向下取整,如果有多个xx.5,则向上取整最大的xx.5并向下取整其他 xx.5? 这应该更正总和
    • 我不清楚这会如何“更好”,或者即使它会起作用。特别是因为表中的 none 值都是 xx.5。事实上,在您的105 行中,所有 的十进制值都远低于x.5。你当然可以设置公式来计算几乎你想要的东西。但一定要明白你在做什么。
    • 我想我将不得不手动执行此操作。因为向上/向下取整取决于 xx.5 和值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2021-10-27
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多