Excel中计算工作时间和工作超时时间的奇怪行为。
为了统计我的工作时间,我编写了下一个工作表。
通过互联网提出的其他解决scheme将不起作用,因为每天的工作时间数量不是固定的。 当“总工时”等于“正常工作时间”时,问题有时会出现。 当我尝试使用条件来格式化超时时间单元格时,我没有得到正确的结果。 平等似乎并非如此。
单元格K9:负值或非常大的date和时间值显示为井号(###)
以下信息很重要:
- 单元格A4:B500,F4,F5格式如下:13:30小时
- 单元格J7:R9格式如下:Custom [h]:mm
- J7:= SUM($ C4:$ C34)和分别单元格K7,L7 …
- J8:= J4 * $ F $ 5和分别单元格K8,L8 …
- J9:= IF(J $ 7> = J $ 8; J $ 7-J $ 8; J $ 8-J $ 7)和分别单元格K9,L9 …
我想知道为什么发生这种情况,如果有解决scheme或不同的方法。
在Excel中执行math运算时,有时会出现浮点错误。 他们是因为Excel限制在15位精度以下,因此15位以后的有效数字被忽略。
Excel中的时间都是天数的百分比。 计算机以二进制计算,因此在math运算之前,所有这些小数必须转换为二进制,结果必须转换回十进制。
例如,像二进制的简单的0.1就像十进制的Pi,它不是一个有限的数字。
对这些转换后的数字进行math运算,会出现舍入误差。
如果将K9的格式更改为常规,则可能会发现这是一个以科学记数法表示的非常小的负数。
将K9中的结果舍入到大于4的值以允许一天1440分钟,应该排除错误。
好吧,我认为自己在我的陈述中得到了适当的纠正,即重复的加法应该给出和乘法相同的答案。 我只是想说,这是确定性的(同样的计算应该给出相同的答案),但它出错了。
所以乘法和加法很可能是差异的原因,但也可能来自于时间常数的定义和后来的结合,就像你在这个演示中看到的那样:
B6的最后一个小数位不同于B8,所以相等性testing失败。
这是在Excel 2007中:我无法重现Excel 2003或Excel 2010中的行为。