excel - 减去TIME

时间:2011-05-13 19:06:09

标签: excel vba

A1单元格格式为[h]:mm(这是其他几个单元格的总和)

A1的值当前为64:00

我需要B1A1-40 hours。目前B1公式为=A1-TIME(40,0,0)

B1上的格式也是h:mm

由于某种原因,它给我的价值是0:00

有谁知道我做错了什么

2 个答案:

答案 0 :(得分:3)

格式[h]:mm不代表小时数。它具体表示日期和时间。在您的情况下,如果输入时间为64小时,则表示日期为1900年1月2日下午4点。

公式TIME(40,0,0)返回1900年1月0日下午4点的确切日期。 (是的,我知道,1月0日不存在,但Excel认为确实如此)。

因此,当您从1900年1月2日16:00减去1900年1月0日16:00时,您将获得1900年1月2日午夜(00:00)的日期,这是在该点之后的48小时Excel开始计算时间。因此,如果您将该单元格格式化为[h]:mm,它将显示48:00。

修改

公式Time(40,0,0)返回1900年1月0日16:00的原因是因为TIME函数抛出小时字段中24小时的倍数,并且仅处理余数,在这种情况下16小时。您可以在时间函数的小时字段中输入16,40,64,88等,它们都将返回1900年1月0日,16:00。

在Excel中处理日期和时间时,请记住Excel在几天内处理;所以值为1相当于1天。值1.5相当于1天12小时。

所有Excel的日期和时间功能都将时间作为从固定起点(1900年1月0日午夜)测量的特定日期和时间。

要处理工作小时数,时间表或类似情况,您不需要将小时数视为时间或日期,只需将它们视为整数或常规十进制数。

答案 1 :(得分:0)

这是因为Excel首先计算函数Time(40,0,0)的值,该值等于16:00:00(40%24 = 16)。所以,它最终是64:00:00 - 16:00:00 = 48:00:00。您应该设置另一个值为40:00:00的单元格,然后减去两个单元格之间的值。