涉及ms的时间减法

我有一个像这样的数据csv文件:

1,Success,19:1:6:445 1,Success,19:1:7:652 1,Success,19:1:10:172 1,Success,19:1:11:500 1,Success,19:1:12:893 ... 

目标是计算上述行的时间差。 例如,从第1行到第2行的时间= 1000ms + 652-445ms = 1207ms

首先,加载你的CSV到excel和parsing,如下所示:

在这里输入图像说明

结果会是这样的:

在这里输入图像说明

G1使用这个公式来获得毫秒的差异。
=SUMPRODUCT(C2:F2-C1:F1,{3600000,60000,1000,1})
在那里你有毫秒的差异。

Excel不知道几毫秒。 当您加载您的CSV时,这些“19:1:6:445”条目将作为文本进入。 你将不得不添加一些公式来半手工parsing它们。 突变date条目将在C列结束,所以我会把公式从D列开始,并向右。

在D1中,find第三个结肠的位置,即毫秒的分界线。

 =FIND(":", C1, FIND(":", C1, FIND(":", C1, 1)+1)+1) 

在E1中,获取Excel 可以parsing的date值,秒和更大的部分。

 =TIMEVALUE(LEFT(C1,D1-1)) 

在F1中,毫秒部分的date值。 那个师? 秒每小时,每小时,毫秒每秒。

 =NUMBERVALUE(MID(C1,D1+1,30))/3600/24/1000 

现在,在G1中重组这两个,

 =E1+F1 

并填充这些列以获取所有导入的单元格的毫秒数值。 毫秒的差异可以从第2行开始,所以在H2中

=(G2-G1)* 3600 * 24 * 1000

转换回可读毫秒。

如果你对公式有所了解,把E,F和G列结合起来应该不难,但为了清楚起见,我把它们分开了。 另外请注意,你正在处理浮点值。 这意味着你偶尔得到一个错误。