【问题标题】:Sum of Averages in Excel Pivot TableExcel 数据透视表中的平均值总和
【发布时间】:2016-07-26 16:33:37
【问题描述】:

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

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

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

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

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

该数据中有数百行(并且会有多个不同#行的数据转储),每天都会发生多个案例。 我正在尝试使用数据透视表,但我无法获得特定房间的“平均值总和”(见图)。我正在使用宏从总计列中提取数字。

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

【问题讨论】:

    标签: excel ms-office pivot-table utilization vba


    【解决方案1】:

    您获得 300 的“Average of Available Time”列的原因是总计是基于总体平均值的总计,而不是平均值的总和。

    • 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

    【讨论】:

    • 我们在这里提出了类似的解决方案:我们先按房间排序数据,然后按日期排序。额外的列和 if 语句检查相同的日期,如果存在不应计算的“可用时间”,则创建一个空格。顺便说一句,您的假设是正确的 - 也许您可以在我接受答案后发表评论!
    • 我们只查看 if 语句中的日期,因此如果我们在一个月内只有一个房间的一天数据,并且如果下一个房间在该数据上运行,那么从技术上讲,该公式可能会被打破天。著名的遗言:它不应该发生。也许我们会建立故障安全:P
    • @Henry Harding McCall 我无法发表评论,因为我没有声誉。很高兴听到您有类似的解决方案。至于故障保险,我个人会包括在内,但这只是我个人和我过于谨慎的倾向。
    【解决方案2】:

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

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

    那么数据是否有序并不重要。

    根据需要将公式向下扩展,然后将新列包含在您的数据透视表数据区域中。

    【讨论】:

      【解决方案3】:

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

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

      第一项对 H 列求和,第二项减去总和。这是一个动态解决方案,并且会根据数据透视表的大小进行更改。

      我的假设是数据透视表最初放置在单元格 G3 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        • 1970-01-01
        相关资源
        最近更新 更多