我一直试图解决问题一段时间,而我只是没有得到我需要的结果。我有一个电子表格,可以在机械车间捕获工时,我想知道每个机械师需要多少小时的劳动力。系统使用开放式工单来计算工时,但是它允许一个机械师打开多个工单并且这些工单的日期/时间经常重叠。
例如,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
小时的总工时{ {1}}小时劳动实际上,由于WO时间重叠,机械师只进行了10
小时的劳动。
我需要的是一个公式,1)指出重叠发生的地方和2)计算实际工时,而不是系统工时。
我想要指出重叠发生的地方以及可以计算/返回实际小时数的东西。这很容易在你的脑海中一次性完成,但我正在处理大型数据集,手动进行这些计算需要花费大量时间。我玩过MIN / MAX和SUMPRODUCT,但我似乎无法得到公式来返回我正在寻找的结果。
样本数据图片供参考:
答案 0 :(得分:3)
对于您的示例,假设B2:B6
中的开始时间/日期和C2:C6
中的结束时间/日期,您可以使用此公式来获取总计(非重叠)小时数
=SUMPRODUCT((COUNTIFS(B2:B6,"<"&MIN(B2:B6)+ROW(INDIRECT("1:"&ROUND((MAX(C2:C6)-MIN(B2:B6))*1440,0)))/1440-1/2880,C2:C6,">"&MIN(B2:B6)+ROW(INDIRECT("1:"&ROUND((MAX(C2:C6)-MIN(B2:B6))*1440,0)))/1440-1/2880)>0)+0)/60
以十进制小时数显示结果。
对于那个例子我假设你想要使用整个范围 - 如果你想要你可以在公式中添加另一个标准来仅计算特定的机制
该公式实际上测试了该时间段内的每一分钟,以查看它是否存在于其中一个时间段内,如果是这样,它只计算一次......但只有一次 - 见截图:
答案 1 :(得分:-1)
关于问题的第二部分,“计算实际工时,而不是系统工时”,并假设数据的布局如下:
公式可以是=MAX(B2:C4)-MIN(B2:C4)
需要有关如何显示“重叠”的更多信息,即条件格式等。