在 Excel 中从时间中减去毫秒

在 Excel 中从时间中减去毫秒

我有一个日志数据文件,其中有结束时间,以及以毫秒为单位指定的操作持续时间。我想从结束时间中减去持续时间,以获取操作开始的时间。我该怎么做?

各列如下:

|EndTime   |ElapsedTime|Logmessage|
|01:00:41.5|        412|Operation2|
|01:00:41.6|        260|Operation3|
|01:00:42.0|       1520|Operation1|

我想要的是这个:

|StartTime |EndTime   |ElapsedTime|Logmessage|
|01:00:41.1|01:00:41.5|        412|Operation2|
|01:00:41.4|01:00:41.6|        260|Operation3|
|01:00:40.5|01:00:42.0|       1520|Operation1|

因此很明显,操作 1 虽然是在操作 2 和 3 之后记录的,但实际上是先开始的。

我尝试过简单地ElapsedEndTime列中减去时间列。我尝试过使用以下Time命令:

Time(0;0;[ElapsedTime]/1000)

Time显然忽略了毫秒。

答案1

只要 ElapsedTime 始终是小于 32768 的整数,

TIME(0;0;[ElapsedTime])/1000

应该可以工作。(我假设分号在函数中通常对你有用。在我的计算机上,我会说TIME(0,0,[ElapsedTime])/1000,使用逗号。)

警告:“第二(s)” 参数必须TIME()介于 0 和 32767 之间。如果持续时间超过 32767 毫秒(即 32.767 秒),则上述操作将失败。如果存在这种可能性,或者 ElapsedTime 可能有小数部分(例如 412.867)——或者可能为负数——那么 Máté 的答案会更好。

答案2

在 Excel 中,天数地址存储为整数,小时数和分钟数存储为分数。尝试以下操作:
EndTime-ElapsedTime/(24*60*60*1000)

相关内容