减去时间单位(不是一天中的时间)

减去时间单位(不是一天中的时间)

如何减去时间单位(不是一天中的时间)?去年我跑了一场马拉松,用时 48 分 20 秒。今年我跑了一场马拉松,用时 47 分 50 秒。当我在 Excel 中执行此操作时,我尝试了所有可以想象的时间格式(包括[h]mm:ss),但都不起作用。我期望的结果是-00:00:30(或负 30 秒)。

答案1

Excel 使用一天的分数来存储时间。因此,3 小时存储为 0.125(3/24)。时间存储为日期/时间值。Excel 从 1900 年 1 月 1 日凌晨 12:00(Mac 版 Excel 上为 1904 年 1 月 2 日凌晨 12:00)开始计算日期。输入时间 0:48:20 实际上是 1900 年 1 月 1 日 0:48:20 小时。Excel 不支持负日期/时间值,因此减去负值会导致错误(单元格显示“#######”)。

另一个挑战是让 Excel 理解 48:20 指的是 48 分钟 20 秒,而不是 48 小时 20 分钟。有两种方法可以做到这一点:

  • 使用小时表示法。48分20秒变成:0:48:20
  • 使用TIME函数:=TIME(0;48;20)

第三件要考虑的事情是单元格的格式。在自定义格式中,您可以使用 [h]:mm:ss 或 [m]:ss。括号告诉 Excel 它应该计算小时数([h])或分钟数([m]),而不是在 23 小时或 59 分钟后将其恢复为零。因此,对于您的情况,请确保单元格的格式如下:[m]:ss

长话短说:没有“开箱即用”的方法来做你想做的事情,因为 Excel 不知道如何处理负时间值。

如果你真的想要计算您的要求,您可以使用以下(稍微复杂一点的)公式,从 A2 中减去 A1:。=IF( A2-A1 < 0; "-"; "") & TEXT( ABS(A2-A1); "[m]:ss" )它实际上做的是减去时间,将其转换为正数(ABS),将其格式化为字符串(TEXT),并在负数时在其前面放置一个“-”。请注意,结果是文本而不是数字(值)。

微软有两篇文章;一篇关于存储日期和时间值(向下滚动到文章的一半左右)以及一篇关于增加和减少时间

答案2

Excel处理负数时间......但前提是你使用“1904 日期系统”,而不是 Excel 默认的 1900 日期系统

要为特定工作簿设置该功能,请执行以下操作:

文件 > 选项 > 高级 > 向下滚动到“计算此工作簿时”部分(靠近底部)并勾选“1904 日期系统”框。

有时您可能会得到不良结果。不要在已经有日期的工作簿中切换到 1904 日期系统 - 因为基准日期而不是1/1/1904日期1/0/1900将改变 4 年零一天(1462 天)。

见截图:

在此处输入图片描述

答案3

这可行,时间函数不能接受 24 小时,但只需用 23 小时欺骗它,然后稍后进行更正......

=IF(A1<B1,TIME(23,0,0)-A1+B1+TIME(1,0,0),B1-A1)

相关内容