4

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

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 数据复制并粘贴到单独的工作表上,然后计算平均值。如果有一种方法可以使用自定义的总计列来做到这一点,那将是不可思议的。这对我来说是数据透视表的最大缺点之一,但我希望这是由于我的无知,而这通常是。谢谢您的帮助!

4

2 回答 2

6

您可以编写一个度量来检查特定过滤器上下文中的“行”数,并将其嵌套在 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 最强大的功能)。雅各布

于 2012-12-06T02:34:05.233 回答
1

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

具有条件格式的数据透视表

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

于 2012-11-01T18:27:16.830 回答