涉及ms的时间减法

时间:2014-04-25 06:45:34

标签: excel

我有一个包含如下数据的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 = 1207 ms

2 个答案:

答案 0 :(得分:2)

首先,将您的CSV加载到excel并使用以下列的文本进行解析:

enter image description here

结果将如下:

enter image description here

G1中使用此公式可获得毫秒差异 =SUMPRODUCT(C2:F2-C1:F1,{3600000,60000,1000,1})
你有毫秒差距。

答案 1 :(得分:1)

Excel不知道毫秒。当您加载CSV时,那些" 19:1:6:445"条目将以文本形式出现。您必须添加一些公式来半手动解析它们。突变日期条目将以C列结尾,因此我将公式从D列开始并向右移动。

在D1中,找到第三个冒号的位置,即分隔毫秒的位置。

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

在E1中,获取Excel 可以解析的日期值,包含秒和更大的部分。

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

和在F1中,毫秒部分的日期值。那师?每小时秒数,每天小时数,每秒毫秒数。

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

现在,重新组合G1中的两个,

=E1+F1

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

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

转换回可读的毫秒数。

如果您对公式有所了解,那么将E,F和G列合并起来并不困难,但为了清楚起见,我将它们分开。另请注意,您在此处理浮点值;这意味着您偶尔出现一个错误。