我正在测量数据转储中的房间利用率(使用的时间/可用时间)。每行包含当天的可用时间和特定案例的时间。 图像是数据的简化版本。
如果您阅读黄色和绿色高光(房间1):
Room 1 utilization = (60 + 50 + 350)/(200 + 500)
总结可用时间的问题在于它将2016年1月1日的200分钟重复计算,给出:Utilization = (60+50+350)/(200+200+500)
此数据中有数百行(并且将有多个不同行数的数据转储),每天都会发生多个案例。 我正在尝试使用数据透视表,但我无法获得特定房间的“平均值”(见图)。我正在使用宏来从总数列中提取数字。
这可能吗?您是否看到了获得利用的另一种方式? (注意:数据中有很多其他列,例如案例开始,案例结束,星期几等,这些列未在此计算中使用但可用)
答案 0 :(得分:1)
您在“可用时间平均值”列中获得300的原因是,总计是基于总体平均值的总计,而不是平均值的总和。
我无法对原始问题发表评论,因此我的解决方案基于一些假设。
假设#1:数据将始终分组。例如。在给定日期的房间1中的所有案例将按顺序行分组。
假设#2:可用时间列是一整天的单个值,同一天的可用时间永远不会有所不同。
解决方案:使用E列作为实际可用时间。此列将使用公式来确定当前行是否具有前一行的唯一组合(日期+房间+可用时间),如果是,则单元格将包含该行的可用时间。
在E2中使用的公式:
=IF(AND($A1 = $A2, $B1 = $B2, $C1 = $C2), 0, $C2)
根据需要将公式尽可能地扩展,然后在数据透视表数据范围中包含新列。
答案 1 :(得分:0)
我通过组合列创建了一个唯一的引用,然后使用了sumif / countif / countif。
因此,E栏中的公式为: = SUMIF(COLB,cellB,COLC)/ COUNTIF(COLB,勒)/ COUNTIF(COLB,勒)
如果数据是否有序则无关紧要。
根据需要将公式尽可能地扩展,然后在数据透视表数据范围中包含新列。
答案 2 :(得分:0)
我推荐的最简单的方法是这个。
ARRAY<STRUCT
第一项对H列求和,第二项对总和减去。这是一个动态解决方案,并且将根据数据透视表的大小进行更改。
我的假设是数据透视表最初放置在G3单元格中。