Excel中的负时间跨度值

时间:2015-09-08 23:00:18

标签: excel

我开发了一个能够将其数据导出到Excel文件的应用程序。一些单元确实包含负时间跨度值。我知道Excel是以某种方式开发的(基于1900年日期系统)导致问题,所以我启用了1904年日期系统。否则我无法显示负时间值。

我所拥有的是B12中的时间值(所有单元格的格式为[h]:mm:ss)。

enter image description here

现在在E12中我想显示减去40小时C12的结果。出于某种原因,而不是-8它显示+16。所以我仔细检查了E13,看看计算本身是否不同。但它在那里按预期工作。

在E16中可以看到我能想到的一种可能的解决方法。在那里,我有一个参考单元格,其中包含40小时的时间值。但我不喜欢它,因为这个40小时在这里是一些无趣的内容,不应该出现在任何地方。

另一种可行的解决方法是使用TEXT作为单元格格式,但我的应用程序用户将无法使用导出的值进行进一步计算。

所以问题是:为什么E12显示+16小时?我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

  

我在这里缺少什么?

您对TIME() function的第一个参数如何工作做出了错误的假设。 40并不意味着40小时的结果,但(我引用):

  

小时必填。从0(零)到32767表示小时的数字。任何大于23的值都将除以24,其余值将被视为小时值。例如,TIME(27,0,0)= TIME(3,0,0)= .125或3:00 AM。

你真的需要这个功能吗?您可以计算40小时,例如40/24,即 E12 中的=C12-40/24。然后你得到预期的时间-8:00.00

如果您在某个其他位置(> A1 )有值> gt {= 24:00:00,则可以使用=DATEVALUE(A1) + TIMEVALUE(A1)进行转换。这些值有它们的日期部分。但是当你知道Excel日期/时间系统是如何工作的(1 = 24小时,所以1/6 = 4小时,1.5 = 36小时等等),你不需要打扰这些功能,你可以计算很多时间值直接如我所示。