Zam*_*Zam 1 excel data-modeling excel-formula powerpivot dax
我在确定如何生成可以在数据透视图上绘制的平均值计算时遇到一些困难.
具体而言,我希望将销售代表的业绩(按月/年的毛利润)与在特定时期内具有可比角色(同一工作组)的所有其他代表(使用平均值)进行比较.
我们只说数据结构如下:
SaleID SaleLocation SaleType SalesRep SaleDate WorkGroup SalesGP
1 Retail1 Car John A 01/01/2014 Sales $301
2 HQ Bike John A 01/01/2014 Sales $200
3 Retail1 Car Sam L 02/01/2014 Sales $1300
4 Retail2 Plane Sam L 02/01/2014 Sales $72
5 Retail2 Plane Vince T 03/01/2014 Admin $55
6 Retail2 Bike John A 04/01/2014 Sales $39
7 HQ Car Vince T 05/01/2014 Admin $2154
....etc
Run Code Online (Sandbox Code Playgroud)
在excel数据模型中,我为销售日期添加了计算字段(使用查找表),以便按月或年绘制销售额(例如=年([SaleDate])和= MONTH([SaleDate]) )
举个例子,假设我想在一段时间内绘制某人的GP(毛利润):

我的问题是......
如何计算我可以在数据透视图上绘制的"平均毛利"?这种"平均毛利率"应该是所有销售的平均同一时期对同一工作组.
在上面的示例中,在数据透视图中,我想要绘制一个"平均"系列,该系列绘制与John A("Sales")在同一工作组中的所有SalesRep的平均GP按月绘制.
如果我的要求不够明确,请告诉我,我会尽力扩展.
扎姆,这应该很容易.您只需创建一个新的计算字段,计算所有销售代表的平均值.
让我带你走过去:
我使用了您的数据表,然后将其添加到我的PowerPivot(Excel 2013).然后我创建了这些计算出的度量
1.销售平均值:
=AVERAGE(SalesData[SalesGP])
Run Code Online (Sandbox Code Playgroud)
2. Sales Average ALL - 这将计算表中所有行的平均值,并将用于其他计算.注意我使用第一个计算字段作为第一个参数来使这个灵活:
=CALCULATE([Sales Amount Average],ALL(SalesData))
Run Code Online (Sandbox Code Playgroud)
3.销售比较平均值.我不确定你的目标是什么,但是因为我希望以百分比显示性能,所以我使这个目标更复杂一些:
=IF([Sales Amount Average] > 0, [Sales Amount Average] / [Sales Average ALL] -1)
Run Code Online (Sandbox Code Playgroud)
基本上,这样做首先检查他们是否为销售代表计算了现有的计算,如果是,则将给定销售代表的销售平均值除以所有销售代表的平均销售额.然后我减去1,这样只需通过查看百分比即可轻松掌握性能.
为了便于理解,我决定在条件格式中使用条形图而不是独立的数据透视图 - 我相信它完全符合您的需求:

在上图中,第一个表格代表您的数据.第二个表是实际的powerpivot表,并显示了我所描述的内容.
希望这可以帮助!
编辑
我不想让事情过于复杂,但是如果你想从Grand Totals行中删除百分比总数,请使用此计算代替百分比比较:
=IF(HASONEVALUE(SalesData[SalesRep]),
IF([Sales Amount Average] > 0,
[Sales Amount Average] / [Sales Average ALL] -1),
BLANK()
)
Run Code Online (Sandbox Code Playgroud)
编辑 - 增加平均工作量的平均比较
要计算每个工作组的性能而不是所有销售代表,请添加以下两个度量:
4.每个工作组的销售平均值
=CALCULATE(AVERAGE(SalesData[SalesGP]),ALL(SalesData[SalesRep]))
Run Code Online (Sandbox Code Playgroud)
这将计算每个工作组的平均销售额(不要混淆在ALL函数中使用SalesRep,它与过滤器上下文有关).
5.销售差异到每个工作组的平均值
=IF(HASONEVALUE(SalesData[SalesRep]),IF([Sales Amount Average] > 0, [Sales Amount Average] - [Sales Average per Workgroup]),BLANK())
Run Code Online (Sandbox Code Playgroud)
这只是计算之间的差别平均销售给销售代表和每个工作组的平均销售.结果可能如下所示:

我已将源文件上传到我的公共Dropbox文件夹.
| 归档时间: |
|
| 查看次数: |
11402 次 |
| 最近记录: |