我有一长串流程,都有开始和结束日期。我希望能够找到在给定日期运行了多少已经运行超过一天的进程,以及自启动以来的平均时间。最后,我想绘制一个图表,显示随时间推移的平均处理时间。我遇到的问题不是确定哪些进程在给定日期运行,而是对在给定日期运行的所有进程开始后的平均时间。
为了获取给定日期运行的进程数,我使用了以下方法:
=COUNTIFS(raw!B:B, "<" & data!A2, raw!C:C, ">" & data!A2) + COUNTIFS(raw!B:B, "<" & data!A2, raw!C:C, "=" & "")
以上表格的详细说明: 如果我有一个在 1-1-20 开始的进程,并且只有该进程在 1-1-20 运行,那么“进程启动后的平均天数”为 0,因为它运行的时间少于一天。在 2-1-20,如果那仍然是唯一运行的进程,则“自进程启动以来的平均天数”为 1,因为该单个进程已运行 1 天。
如果我在 4-1-20 启动一个新进程,虽然有两个进程在运行,但运行时间少于 1 天的进程不被计算在内。所以平均值将是 3/1=3。然后在 5-1-20,“自进程启动以来的平均天数”为 2.5,因为第一个进程已运行 4 天,第二个运行 1 天。 (1+4)/2 = 2.5
如果我在 10-1-20 开始另一个进程,但在 9-1-20 停止了第一个进程,那么在 11-1-20 的“进程启动后的平均天数”为 4,因为第二个进程已经运行了7天,第三个进程为1.(1+7)/2 = 4
最佳答案
如果我使用这样的公式来计算特定日期的事件进程数,我只能得到与 OP 相同的答案:
=COUNTIFS(B$2:B$10,"<"&F2,C$2:C$10,">="&F2)
这比问题中显示的进程数少 1,因为如果进程在当前日期开始,则不包括在内。这似乎与问题的“澄清”部分中给出的描述不一致。
然后我可以这样总结天数:
=SUMPRODUCT((F2-B$2:B$10)*(B$2:B$10<=F2)*(C$2:C$10>=F2))
并将一个除以另一个以获得每个进程的平均天数。注意上面公式中的<=和>=。
=IFERROR(H2/G2,0)
关于excel - 确定日期是否在开始/结束日期之间,以及自开始以来的平均天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65163665/