excel - 确定日期是否在开始/结束日期之间,以及自开始以来的平均天数

标签 excel excel-formula powerquery

我有一长串流程,都有开始和结束日期。我希望能够找到在给定日期运行了多少已经运行超过一天的进程,以及自启动以来的平均时间。最后,我想绘制一个图表,显示随时间推移的平均处理时间。我遇到的问题不是确定哪些进程在给定日期运行,而是对在给定日期运行的所有进程开始后的平均时间。

示例日期(“原始”表): ![enter image description here

期望的结果(“数据”表): ![enter image description here

为了获取给定日期运行的进程数,我使用了以下方法:

=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)

enter image description here

关于excel - 确定日期是否在开始/结束日期之间,以及自开始以来的平均天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65163665/

相关文章:

vba - 如何在 Excel 中更改事件单元格的位置(或将值加一)

Excel VBA 自动化错误 : The object invoked has disconnected from its clients

excel - 使用 VLOOKUP()

powerbi - Power Query 高级编辑器 (Json.Document(Binary.Decompress(Binary.FromText))

excel - 如果分隔符是;,如何使用 GNU Octave 读取 CSV 文件?

excel - 查找最高三个数字的 AverageIf

excel - 从字符串中删除前导和尾随空格,同时保留其间的空格

excel - 使用 Power Query 从 Excel 缩进中提取层次结构

excel - 从 Excel 数据模型/Power Query 查询单个数据点(获取和转换数据)

excel - 意外的手动分页行为。为什么excel会在错误的行上添加额外的分页符/分页符?