powerpivot在另一个计算中使用计算的值

我有以下表格

命令:

OrderID|Cost|Quarter|User ------------------------- 1 | 10 | 1 | 1 2 | 15 | 1 | 2 3 | 3 | 2 | 1 4 | 5 | 3 | 3 5 | 8 | 4 | 2 6 | 9 | 2 | 3 7 | 6 | 3 | 3 

目标:

 UserID|Goal|Quarter ------------------- 1 | 20 | 1 1 | 15 | 2 2 | 12 | 2 2 | 15 | 3 3 | 5 | 3 3 | 7 | 4 

用户:

 UserID|Name ----------- 1 | John 2 | Bob 3 | Homer 

我所要做的就是总结一个用户所有的订单,将其除以他的目标总和,然后总结所有的订单,用所有目标的总和来划分结果,然后把这个结果加到前一个所有用户的结果。

结果应该是:

 UserID|Name |Goal|CostSum|Percentage|Sum all --------------------------------------------------- 1 |John | 35 | 13 | 0.37 | 2 |Bob | 27 | 23 | 0.85 | 3 |Homer| 12 | 20 | 1.67 | 

计算如下:

 CostSum: 10+3=13 Goal: 20+15=35 Percentage: CostSum/Goal=13/35=0.37 Sum all: 10+15+3+5+8+9+6=56 Goal all: 20+15+12+15+5+7=74 percentage all= Sum_all/Goal_all=56/74=0.76 Result: percentage+percentage_all=0.37+0.76=1.13 for John 1.61 for Bob 2.43 for Homer 

我的主要问题是最后一步。 我不能让它增加整个百分比。 它会经常过滤结果,使之错误。

要做到这一点,你需要创build一些措施。

(我会假设你已经将数据透视表设置为表格式布局,小计已closures – 这允许您在行标签部分中将用户ID和名称设置为相邻)。

这就是我们的输出结果。

在这里输入图像说明

首先让我们确保你已经正确地build立了你的关系 – 应该是这样的: 在这里输入图像说明

我相信你已经在你的数据透视表中设置了前5列,所以我们需要为CostSumAll,GoalSumAll,PercentageAll和Result创build度量。

使这项工作的关键是确保PowerPivot忽略CostSumAll和GoalSumAll度量的行标签filter。 ALL()函数在CALCULATE()使用时充当覆盖filter – 您只需指定要忽略的filter。 在这种情况下,UserID和Name。

CostSumAll

 =CALCULATE(SUM(Orders[Cost]),ALL(Users[UserID]),ALL(Users[Name])) 

GoalSumAll

 =CALCULATE(SUM(Goals[Goal]),ALL(Users[UserID]),ALL(Users[Name])) 

所有百分比

 =Orders[CostSumAll]/Orders[GoalSumAll] 

结果

 =Orders[Percentage]+Orders[PercentageAll] 

下载 – 可在此 下载的 示例文件 。 (实际上不要在Google文档中阅读它 – 它将无法处理PowerPivot的内容,请在本地保存以查看。)