【问题标题】:Custom Formula for Grand Total column总计列的自定义公式
【发布时间】:2012-11-01 15:39:27
【问题描述】:

我经常遇到一个问题,即我想在数据透视表的值区域中使用的公式与我想用于该行的总计列的公式不同。我通常想对值求和,但我想对总和求平均。如果我旋转列标签上的日期、行标签上的肉类类型和值中的总和顺序,这就是我通常会得到的结果。

Row Lables | Day 1 | Day 2 | Day 3 | Grand Total
________________________________________________
Beef       |  100  |  105  |  102  |   307
Chicken    |  200  |  201  |  202  |   603

我得到了按天计算的总和,以及总计列中所有天数的总和。这是我想要的:

Row Lables | Day 1 | Day 2 | Day 3 | Grand Total (Avg of Day Totals)
________________________________________________
Beef       |  100  |  105  |  102  |   102.3
Chicken    |  200  |  201  |  202  |   201.0

在这种情况下,订单仍按天求和,但总计现在是总和的平均值。我现在要做的是将 Pivot 数据复制并粘贴到单独的工作表上,然后计算平均值。如果有一种方法可以使用自定义的总计列来做到这一点,那将是不可思议的。对我来说,这是 Pivot Tables 的最大缺点之一,但我希望这是由于我的无知,这通常是。感谢您的帮助!

【问题讨论】:

    标签: excel excel-2010 pivot-table powerpivot


    【解决方案1】:

    您可以编写一个度量来检查特定过滤器上下文中的“行”数,并将其嵌套在 IF() 中以确定使用哪个。

    如果使用 PowerPivot V2,则为:

    =IF(HASONEVALUE(Calendar[Day]), SUM(AMOUNT), AVERAGE(AMOUNT))
    

    如果使用 PowerPivot V1:

    =IF(COUNTROWS(Calendar[Day])=1, SUM(AMOUNT), AVERAGE(AMOUNT))
    

    两者的作用相同,因为它们在给定上下文中评估表中的行数,当肉类类型为“牛肉”时,临时过滤的表只有一行。如果它没有一行,那么它会沿着 AVERAGE() 的路径前进

    这假定您的列标题“天”位于名为日历的表中(如果您不使用单独的日历表,那么您将错过 PowerPivot IMO 最强大的功能)。 雅各布

    【讨论】:

      【解决方案2】:

      我想不出一个“好”的方法,但这里有一个选择。再次将 Amount 字段添加到数据区域并将操作更改为 Average。然后使用条件格式隐藏数据区域的平均值,隐藏总区域的总和。

      您最好在自己动手的数据透视表中使用一些数组公式。您失去了数据透视表的好处,但在数据方面获得了更大的灵活性。

      【讨论】:

        猜你喜欢
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多