Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使一项工作平均完成一小时?_Excel_Date - Fatal编程技术网

Excel 如何使一项工作平均完成一小时?

Excel 如何使一项工作平均完成一小时?,excel,date,Excel,Date,我有以下类型的数据: **15**/02/2017 0:58 **12**/02/2017 0:12 我想计算一下平均工作完成时间。这是一个巨大的文件,有20万行,我不关心这一天,只关心工作通常什么时候完成。问题是,如果一个小时低于0:00,另一个小时高于0:00,并且它们来自非连续天数,则操作不起作用。我认为这是因为该日期与unix中的日期类似,超过某个阈值日期的毫秒数 我所尝试的:我想到了两种方法: 1) 我将每一行转换为1990年1月1日或1990年2月1日,因为我不关心日期,只关心小时

我有以下类型的数据:

**15**/02/2017 0:58
**12**/02/2017 0:12
我想计算一下平均工作完成时间。这是一个巨大的文件,有20万行,我不关心这一天,只关心工作通常什么时候完成。问题是,如果一个小时低于0:00,另一个小时高于0:00,并且它们来自非连续天数,则操作不起作用。我认为这是因为该日期与unix中的日期类似,超过某个阈值日期的毫秒数

我所尝试的:我想到了两种方法:

1) 我将每一行转换为1990年1月1日或1990年2月1日,因为我不关心日期,只关心小时。然后我试着计算平均值

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


第一个问题是,我不知道如何访问excel中某个日期的特定信息,例如小时和分钟,因此我发现这样做很困难,因为我不知道语法(到目前为止,我有一些类似于=IF(B:B的东西,使用此数组公式仅获取时间的平均值:

=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)

=TIME(ROUNDDOWN)(IF(AVERAGE)(IF(HOUR)(A1:A2)您可以使用字符串操作将小时数提取到helper列中,并对该列运行平均值:

假设您发布的格式为严格格式,则所有日期均在a列中提供,并保存在a列中:

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

然后简单地对helper列求平均值。

为了澄清目的,您是想找出作业结束的平均时间?还是要计算包括分钟在内的平均结束时间?即01:30、02:30、03:00的平均值为2或2.33,具体取决于方法。如果可能,我希望平均值最多为分钟,但如果是秒或更高精度有帮助,但这并不重要。如果你想包括分钟,那么Scott的例子是完美的。我在MID后收到一个错误,因为它告诉我应该输入文本。我必须将单元格格式化为文本还是…因为我恐怕不懂函数。对于给你带来的不便,我深表歉意