excel – 计算重叠日期数组中总小时数的公式

我一直试图解决一个问题,我只是没有得到我需要的结果.我有一个电子表格,可以在机械车间捕获工时,我想知道每个机械师需要多少小时的劳动力.系统使用开放式工单来计算工时,但是它允许一个机械师打开多个工单并且这些工单的日期/时间经常重叠.

例如,Mechanic A在同一天打开三个工单:

WO #1 opened on 5/1/2015 @ 12:00 noon, closed at 4 pm.  
WO #2 opened on 5/1/2015 @ 1pm and closed at 6pm.  
WO #3 opened on 5/1/2015 @ 2pm, closed @ 3pm.

该系统将计算WO#1在4小时的总劳动时间,WO#2的5小时和WO#3的1小时,总共10小时的分娩.实际上,由于WO时间重叠,机械师只进行了6个小时的劳动.

我需要的是一个公式,1)指出重叠发生的地方和2)计算实际工时,而不是系统工时.

我想要指出重叠发生的地方以及可以计算/返回实际小时数的东西.这很容易在你的脑海中一次性完成,但我正在处理大型数据集,手动进行这些计算需要花费大量时间.我玩过MIN / MAX和SUMPRODUCT,但我似乎无法得到公式来返回我正在寻找的结果.

样本数据图片供参考:

最佳答案 对于您的示例,假设B2:B6中的开始时间/日期和C2:C6中的结束时间/日期,您可以使用此公式来获得总(非重叠)小时数

= SUMPRODUCT((COUNTIFS(B2:B6,“<”& MIN(B2:B6)ROW(间接(“1:”& ROUND((MAX(C2:C6)-MIN(B2:B6))* 1440,0)))/ 1440-1 / 2880,C2:C6,“>”& MIN(B2:B6)ROW(间接(“1:”& ROUND((MAX(C2:C6)-MIN) (B2:B6))* 1440,0)))/ 1440-1 / 2880)> 0)0)/ 60

这将结果显示为十进制小时数.

对于那个例子,我假设你想要使用整个范围 – 如果你想要你可以在公式中添加另一个标准,只计算一个特定的机制

该公式实际上测试了该时间段内的每一分钟,以查看它是否存在于其中一个时间段内,如果是,则计算….但只有一次 – 请参见屏幕截图:

点赞