Excel 枢轴 Table 中的平均值之和

Sum of Averages in Excel Pivot Table

我正在从数据转储中测量房间利用率(可用时间 used/time)。每行包含当天的可用时间和用于特定案例的时间。 图片是数据的简化版。

如果你阅读了黄色和绿色的亮点(房间 1):

Room 1 utilization = (60 + 50 + 350)/(200 + 500)

对可用时间求和的问题是它重复计算了 2016 年 1 月 1 日的 200 分钟,给出:Utilization = (60+50+350)/(200+200+500)

此数据中有数百行(并且会有多个不同行数的数据转储)每天都会发生多个案例。 我正在尝试使用枢轴 table,但我无法获得特定房间的 'sum of averages'(见图)。我正在使用宏从总计列中提取数字。

这可能吗?您是否看到另一种获得利用率的方法? (注意:数据中还有许多其他列,如案例开始、案例结束、星期几等,这些列未用于此计算但可用)

两个平均可用时间列都为 300 的原因是总计是基于总体平均值而不是平均值总和的总计。

  • 房间1:200 + 200 + 500 / 3 = 300
  • 房间2:300 + 300 + 300 / 3 = 300

我无法对原始问题发表评论,因此我的解决方案基于一些假设。

假设 #1:数据将始终分组。例如。给定日期 1 号房间中的所有案例将按顺序分组。

假设 #2:可用时间列是一整天的单个值,同一天永远不会有不同的可用时间。


解决方案:使用E列作为实际可用时间。此列将使用公式来确定当前行是否与前一行具有唯一组合(日期 + 房间 + 可用时间),如果是,单元格将包含该行的可用时间。

E2 中使用的公式:

=IF(AND($A1 = $A2, $B1 = $B2, $C1 = $C2), 0, $C2)

尽可能向下扩展公式,然后将新列包含在您的数据透视表数据范围内。


End Result

我通过组合列创建了一个唯一引用,然后使用 sumif/countif/countif。

因此 E 列中的公式为: =sumif(colB,cellB,ColC)/Countif(colB,cellE)/Countif(colB,cellE)

数据是否有序并不重要

尽可能向下扩展公式,然后将新列包含在您的数据透视表数据范围内。

我推荐的最简单的方法是这个。

=SUM(H:H)-GETPIVOTDATA("Average of Available Time",$G)

第一项对 H 列求和,第二项减去总计值。它是一个动态解决方案,并且会更改以适应枢轴的大小 table。

我的假设是 Pivot Table 最初放在单元格 G3 中。