Excel数据透视表中的平均和

我正在测量数据转储中的机房利用率(可用时间/可用时间)。 每行包含当天的可用时间和特定情况下的时间。 图像是数据的简化版本。

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

  • 在1号房间,2016年1月1日有200个可用分钟。
  • 案例1花了60分钟,案例2花了50分钟。
  • 在1/2/2016有500分钟可用,当天只有一个案件发生,用时350分钟。

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

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

在这个数据中有数百行(并且会有多个不同行数的数据转储),每天都会发生多个事件。 我正在尝试使用数据透视表,但无法获得特定房间的“平均值总和”(请参阅​​图像)。 我正在使用一个macros来将总数列中的数字拉出来。

这可能吗? 你看到另一种获得利用的方法吗? (注意:数据中还有很多其他列,如个案开始,个案结束,星期几等等,这些数据在这个计算中没有使用,但可用)

数据透视表中的平均和

在“可用时间平均值”列中获得300的原因是因为总计是基于总体平均值的总计,而不是平均值的总和。

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

我不能评论原来的问题,所以我的解决scheme是基于一些假设。

假设#1:数据将始终分组。 EG在指定date的房间1中的所有情况将按顺序分组。

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


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

在E2中使用的公式:

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

根据需要尽可能延长公式,然后在数据透视表数据范围中包含新列。


最终结果

我通过组合列创build了一个独特的参考,然后使用了sumif / countif / countif。

所以E列中的公式是:sumif(colB,cellB,ColC)/ Countif(colB,cellE)/ Countif(colB,cellE)

如果数据是正确的,那么无关紧要。

根据需要尽可能延长公式,然后在数据透视表数据范围中包含新列。

Interesting Posts