我有以下表格
订单:
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
我的主要问题是最后一步。我不能让它添加整个百分比。它总是会过滤结果,从而导致错误。
答案 0 :(得分:2)
要做到这一点,您需要创建一些措施。
(我假设您已经将您的数据透视表设置为表格布局并关闭了小计 - 这允许您在行标签部分中将UserID和名称设置为彼此相邻。)
这就是我们的输出结果。
首先,请确保您已正确建立关系 - 它应该是这样的:
我相信您已经在数据透视表中设置了前5列,因此我们需要为CostSumAll,GoalSumAll,PercentageAll和Result创建度量。
使这项工作的关键是确保PowerPivot忽略CostSumAll和GoalSumAll度量的行标签过滤器。 ALL()
函数在CALCULATE()
中使用时充当覆盖过滤器 - 您只需指定要忽略的过滤器。在这种情况下,UserID和Name。
<强> CostSumAll 强>:
=CALCULATE(SUM(Orders[Cost]),ALL(Users[UserID]),ALL(Users[Name]))
<强> GoalSumAll 强>:
=CALCULATE(SUM(Goals[Goal]),ALL(Users[UserID]),ALL(Users[Name]))
<强> PercentageAll 强>:
=Orders[CostSumAll]/Orders[GoalSumAll]
<强>结果强>:
=Orders[Percentage]+Orders[PercentageAll]
下载 - Example file available for download here。 (实际上并没有在Google Docs中阅读它 - 它无法处理PowerPivot的内容。在本地保存以便查看。)