如何使一个工作的平均时间完成?

我有以下types的数据:

**15**/02/2017 0:58 **12**/02/2017 0:12 

而且我想平均做出这个工作完成的时间。 这是一个巨大的文件,20万行,我不关心一天,只有当工作通常完成。 问题是,如果一个小时在0:00以下,而另一个在上面,并且它们是从非连续的日子开始的 ,则操作不起作用。 我相信这是因为date与unix中的date类似,超过了某个阈值date的毫秒数。

我试过的:我想到了两种方法:

1)我把每一行都转换为01/01/1990或02/01/1990,因为我不在乎那一天,只有一小时。 然后我尝试计算平均值。

2)我将date转换为毫秒,并将excel的基准date减去每个单元格,从那里我做一个正常的平均值。

第一个问题是,我不知道如何访问Excel中某个date的特定信息,比如,几小时和几分钟,所以我觉得这样做很麻烦,因为我不知道语法(到目前为止,我有类似= IF (B:B <=时间(0:00);“01/01/1900”;“02/02/1900”),但它仍然缺乏信息,不工作)。

第二个问题是,我觉得我更倾向于犯错误,过于复杂,只是计算平均小时数,太多的操作。 但是我对excel知之甚less,所以我不确定在这种情况下更长的path可能会更准确。

使用这个数组公式得到平均时间:

 =AVERAGE(MOD(A1:A2,1)) 

作为一个数组公式,在退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter来确认。 如果正确完成,则Excel将在公式周围放置{}

然后格式化单元为hh:mm:ss

在这里输入图像说明


要得到平均小时,如果它然后使用这个:

 =TIME(ROUNDDOWN(IF(AVERAGE(IF(HOUR(A1:A2)<=12,HOUR(A1:A2),HOUR(A1:A2)-24))<0,24,0)+AVERAGE(IF(HOUR(A1:A2)<=12,HOUR(A1:A2),HOUR(A1:A2)-24)),0),0,0) 

在这里输入图像说明

您也许可以使用string操作将小时数提取到辅助列中,并对该列运行平均值:

假设您发布的格式是严格的格式,则所有date都在A列中提供,

 =VALUE(MID(A1,SEARCH(" ",A1,1)+1,SEARCH(":",A1,1)-SEARCH(" ",A1,1)-1)) 

然后简单地平均帮手列。