【问题标题】:EXCEL - Formula to sum total period of multiple durations without duplicating overlapping time periodsEXCEL - 计算多个持续时间的总时间段而不重复重叠时间段的公式
【发布时间】:2018-12-07 21:52:41
【问题描述】:
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

谢谢!

【问题讨论】:

    标签: excel excel-formula excel-2016


    【解决方案1】:

    使用 COUNTIFS 并为机器添加条件:

    =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 迭代到8-Apr-2064。如果这些日期不够,请更改行号以匹配所需日期。

    使用完整列会导致速度变慢,因为每个公式将迭代超过 200 万次。对于每个公式,这些只会迭代 50,000 次。


    编辑

    如上所述,我们希望限制迭代。此公式将自动将迭代限制为 MIN 和 MAX 日期。

    =SUMPRODUCT(--(COUNTIFS(B$2:B$10,"<"&ROW(INDEX(A:A,MIN(B:C)-1):INDEX(A:A,MAX(B:C)+1)),$A$2:$A$10,I1)-COUNTIFS(C$2:C$10,"<"&ROW(INDEX(A:A,MIN(B:C)-1):INDEX(A:A,MAX(B:C)+1)),$A$2:$A$10,I1)>0))
    

    【讨论】:

    • 非常感谢。这绝对有效。真的很感激。您甚至可以通过减少迭代次数来加快速度。再次感谢
    • 对不起,我对excel不太了解,请你解释一下行号和日期之间的相关性(ROW($A$35000:$A$60000)) & (28-Oct -1995 到 8-Apr-2064)我从来没有真正理解 ROW 在公式中的作用。谢谢
    • 非常感谢您的帮助
    • 35000 是 excel 如何看到 28-oct-1995 它是自 1900 年 1 月 1 日以来的天数。我们使用这些行来一次一天地迭代日期。使用的行越多,迭代越多,结果越慢。限制日期的天数,它会快得多。该公式逐日运行并测试它是否重叠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多