Mar*_*ark 4 date-time worksheet-function microsoft-excel
如何减去时间单位(不是一天中的时间)?去年我跑了 48 分 20 秒的马拉松。今年我跑了 47 分 50 秒的马拉松。当我在 Excel 中执行此操作时,我尝试了所有可以想象的时间格式(包括[h]mm:ss
),但没有任何效果。我期待-00:00:30
(或负 30 秒)的结果。
Excel 使用一天的一小部分来存储时间。因此,3 小时存储为 0.125 (3/24)。时间存储为日期/时间值。Excel 从 1900 年 1 月 1 日上午 12:00(Mac 版 Excel 上的 1/2/1904 上午 12:00)开始计算日期。输入 0:48:20 的时间实际上是 1900 年 1 月 1 日的 0:48:20 小时。Excel 不适用于日期/时间的负值,因此减去负值会导致错误(带有“#######”的单元格)。
另一个挑战是让 Excel 了解 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
) 并在为负数时在其前面放置一个“-”。请注意,结果是文本而不是数字(值)。
微软有两篇文章;一个关于存储日期和时间值(向下滚动到文章的大约一半),一个关于加减时间。