Grand Total列的自定义公式

Mat*_*ews 4 excel pivot-table excel-2010 powerpivot

我经常遇到一个问题,我想在我的数据透视表中的值区域中使用的公式与我想用于该行的"总计"列的公式不同.我通常想要求值,但我想平均和.如果我在列标签,行标签上的肉类型和值中的总和订单上轮换日期,通常会得到以下内容.

Row Lables | Day 1 | Day 2 | Day 3 | Grand Total
________________________________________________
Beef       |  100  |  105  |  102  |   307
Chicken    |  200  |  201  |  202  |   603
Run Code Online (Sandbox Code Playgroud)

我按天收到总和,以及Grand Total列中所有日期的总和.这是我想要的:

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
Run Code Online (Sandbox Code Playgroud)

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

Jac*_*cob 5

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

如果使用PowerPivot V2,那么它是:

=IF(HASONEVALUE(Calendar[Day]), SUM(AMOUNT), AVERAGE(AMOUNT))
Run Code Online (Sandbox Code Playgroud)

如果使用PowerPivot V1,它是:

=IF(COUNTROWS(Calendar[Day])=1, SUM(AMOUNT), AVERAGE(AMOUNT))
Run Code Online (Sandbox Code Playgroud)

两者都做同样的事情,因为他们在给定的上下文中评估表中的行数,并且当Meat Type为'Beef'时,临时过滤的表有一行.如果它没有一行,那么它沿着AVERAGE()的路径走

这假设您的列标题'Days'位于名为Calendar的表中(如果您没有使用单独的Calendar表,那么您将缺少PowerPivot IMO最强大的功能).雅各