如何在数据透视表中按类型计算筛选后的平均/最长工单时长
按工单类型计算未关闭工单的平均/最长打开时长
问题说明
在数据透视表中跟踪两类工单,目前仅能计算所有未关闭工单的平均和最长打开时长,需要按工单类型分别统计。
表格示例(隐去客户数据)
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Id | Summary | Status | Closed date | Time open (d) | Type |
| 2 | 1 | bogus | Open | 1 | Type1 | |
| 3 | 2 | bogus2 | Closed | 01/01/2023 | 3 | Type1 |
| 4 | 3 | bogus3 | In Review | 5 | Type1 | |
| 5 | 4 | bogus | Open | 1 | Type2 |
当前公式与问题
当前使用以下公式计算**所有未关闭(Closed date为空)**工单的平均/最长时长:
- 平均:
=AVERAGE(IF(ISBLANK(D2:D5),E2:E5))(结果=2.33) - 最长:
=MAX(IF(ISBLANK(D2:D5),E2:E5))(结果=5)
但结果混合了两类工单,需要添加类型筛选,实现Type1未关闭工单的平均=3、最长=5。
尝试用AVERAGEIF时出现错误:
- 公式
=AVERAGEIF(IF(ISBLANK(D2:D5),E2:E5), pivot_table[Type]="Type1")返回#SPILL!:参数顺序和逻辑错误,不符合AVERAGEIF语法。 - 公式
=AVERAGEIF(E2:E5, OR(ISBLANK(D2:D5),pivot_table[Type]="Type1"))返回#DIV/0!:用OR逻辑错误(需同时满足两个条件,而非任一),且OR无法返回数组结果。
解决方法
方法1:使用新版Excel函数(推荐)
Excel 2019及以后版本支持AVERAGEIFS和MAXIFS,可直接设置多条件筛选:
- Type1未关闭工单平均时长:
逻辑:计算E列中,满足D列为空(未关闭)且F列为Type1的单元格平均值。=AVERAGEIFS(E2:E5, D2:D5, "", F2:F5, "Type1") - Type1未关闭工单最长时长:
=MAXIFS(E2:E5, D2:D5, "", F2:F5, "Type1")
方法2:数组公式(兼容旧版Excel)
如果使用旧版Excel,需用数组公式实现多条件筛选,输入公式后按Ctrl+Shift+Enter确认:
- Type1未关闭工单平均时长:
=AVERAGE(IF((ISBLANK(D2:D5))*(F2:F5="Type1"),E2:E5)) - Type1未关闭工单最长时长:
逻辑:用=MAX(IF((ISBLANK(D2:D5))*(F2:F5="Type1"),E2:E5))*(乘号)表示“同时满足”两个条件,生成布尔数组后筛选E列对应值计算。
内容的提问来源于stack exchange,提问作者Nemelis
相关产品推荐
相关产品推荐

