计算工作时间和工作超级时间时 Excel 中的奇怪行为

问题描述 投票:0回答:2

我编写了下一个工作表来计算我的工作时间。

Work Hours Worksheet 通过互联网提出的其他解决方案将不起作用,因为每天的工作时间量最初并未固定。当“总工作时间”等于“正常工作时间”时,有时会出现问题。当我尝试使用条件格式化超级小时单元格时,我没有得到正确的结果。平等似乎并非如此。

Conditional format

单元格 K9:负数或非常大的日期和时间值显示为井号 (###)

以下信息很重要:

  1. 单元格 A4:B500、F4、F5 的格式如下:Hour 13:30
  2. 单元格 J7:R9 的格式如下:自定义 [h]:mm
  3. J7: =SUM($C4:$C34) 以及单元格 K7、L7...
  4. J8:=J4*$F$5 以及单元格 K8、L8...
  5. J9: =IF(J$7>=J$8;J$7-J$8;J$8-J$7) 以及单元格 K9,L9...

我想知道为什么会发生这种情况以及是否有解决方案或不同的方法。

excel excel-formula
2个回答
2
投票

当您在 Excel 中执行数学运算时,有时会出现浮点错误。它们的出现是因为 Excel 的精度限制为 15 位,因此 15 之后的有效数字将被忽略。

Excel 中的时间都是天的百分比。计算机以二进制计算,因此在数学运算之前所有这些小数都必须转换为二进制,并且结果必须转换回十进制。

例如,像二进制的 0.1 这样简单的东西就像十进制的 Pi - 它不是一个有限的数字。

对这些转换后的数字进行数学计算,会出现舍入误差。

如果你把K9的格式改成General,你可能会发现它是一个用科学计数法表示的非常小的负数。

将 K9 中的结果四舍五入到大于 4 的值以允许一天有 1440 分钟,应该可以消除错误。


0
投票

好吧,我认为自己在我的陈述中得到了适当的纠正,即重复加法应该给出与乘法相同的答案。我只是想说它是确定性的(相同的计算应该给出相同的答案),但结果是错误的。

因此,乘法与加法很可能是造成差异的原因,但它也可能来自时间常数的定义方式和后来的组合方式,正如您从这个演示中看到的:-

enter image description here

B6 的最后一位小数与 B8 不同,因此相等测试失败。

这是在 Excel 2007 中:我无法在 Excel 2003 或 Excel 2010 中重现该行为。

© www.soinside.com 2019 - 2024. All rights reserved.