Machine_ID STARTDATE ENDDATE
Machine 1 23-Apr-10 8-Jul-13
Machine 1 16-Jun-10 10-Jul-10
Machine 1 15-Aug-12 5-Oct-12
Machine 1 9-Jul-13 2-Jan-14
Machine 1 31-Dec-13 3-Jan-14
Machine 2 28-Mar-13 14-Apr-13
Machine 2 12-Jun-13 27-Jul-13
Machine 2 24-Jul-13 28-Oct-13
Machine 2 24-Oct-13 27-Oct-13
我想计算每台机器的总时间,而不必重复重叠的时间段。到目前为止,此数组公式(ctrl + shift + enter)可以完美地实现:
=SUM(--(COUNTIF(B$2:B$5,"<"&ROW(A:A))-COUNTIF(C$2:C$5,"<"&ROW(A:A))>0))
但是我需要对其进行调整,以便能够为每台机器(有数百台机器)做到这一点
我看到了这个公式,它可以为每个公式进行计算(首先,您用唯一的机器编号填写行,然后进行计算,但这仅计算重叠时间
=SUMPRODUCT(--($A$2:$A$36=$I2),--($C$2:$C$36>$B$3:$B$37),--($B$3:$B$37<>""),
($C$2:$C$36-$B$3:$B$37)-($C$2:$C$36-$C$3:$C$37)*($C$2:$C$36>$C$3:$C$37)*
($C$3:$C$37<>0))
这是第一列
Machine 1
Machine 2
Machine 3
谢谢!
答案 0 :(得分:0)
使用COUNTIFS并添加机器的条件:
i18n
我还限制了要迭代的行数。该公式将从=SUMPRODUCT(--(COUNTIFS(B$2:B$10,"<"&ROW($A$35000:$A$60000),$A$2:$A$10,I1)-COUNTIFS(C$2:C$10,"<"&ROW($A$35000:$A$60000),$A$2:$A$10,I1)>0))
迭代到28-Oct-1995
。如果这些日期不足,请更改行号以匹配所需的日期。
使用完整的列会导致速度变慢,因为每个公式都会迭代200万次以上。每个公式只能迭代50,000次。
编辑
如上所述,我们要限制迭代次数。此公式将自动将迭代限制为MIN和MAX日期。
8-Apr-2064