Excel PowerPivot平均值计算

时间:2014-02-24 04:29:49

标签: excel excel-formula data-modeling 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

在excel数据模型中,我为销售日期添加了计算字段(使用查找表),以便按月或年绘制销售额(例如=年([SaleDate])和= MONTH([ SaleDate]))

作为一个例子,假设我想在一段时间内绘制某人的GP(毛利润):

enter image description here

我的问题是......

如何计算我可以在数据透视图上绘制的“平均毛利”?此“平均毛利润”应为同一工作组相同期间的所有销售额的平均值。

在上面的示例中,在数据透视图中,我想要绘制一个“平均”系列,该系列绘制与John A(“Sales”)在同一工作组中的所有SalesRep的平均GP值。

如果我的要求不够明确,请告诉我,我会尽力扩展。

1 个答案:

答案 0 :(得分:8)

扎姆,这应该很容易。 您只需创建一个新的计算字段,用于计算所有销售代表的平均值

让我引导你完成它:

我使用了您的数据表,然后将其添加到我的PowerPivot(Excel 2013)中。然后我创建了那些计算出的度量:

<强> 1。销售平均:

=AVERAGE(SalesData[SalesGP])

<强> 2。销售平均值ALL - 这将计算表中所有行的平均值,并将用于其他计算。注意我使用第一个计算字段作为第一个参数来使其灵活:

=CALCULATE([Sales Amount Average],ALL(SalesData))

第3。销售比较平均值。我不确定你的目标是什么,但是因为我希望以百分比显示性能,所以我把它变得更复杂了:

=IF([Sales Amount Average] > 0, [Sales Amount Average] / [Sales Average ALL] -1)

基本上,这样做首先检查他们是否是销售代表的现有计算,如果是,那么它将给定销售代表的销售平均值除以所有销售代表的平均销售额。然后我减去1,这样只需通过查看百分比即可轻松掌握性能。

为了便于理解,我决定在条件格式中使用条形图而不是独立的数据透视图 - 我相信它完全符合您的需求:

enter image description here

在上图中,第一个表格代表您的数据。第二个表是实际的powerpivot表,并显示了我所描述的内容。

希望这有帮助!

修改

我不想让事情过于复杂,但是如果你想从Grand Totals行中删除百分比总数,请使用此计算代替百分比比较:

=IF(HASONEVALUE(SalesData[SalesRep]),
    IF([Sales Amount Average] > 0, 
        [Sales Amount Average] / [Sales Average ALL] -1),
    BLANK()
)

编辑 - 为工作组增加平均比较

要计算每个工作组的性能而不是所有销售代表,请添加以下两个度量:

<强> 4。每个工作组的销售平均值

=CALCULATE(AVERAGE(SalesData[SalesGP]),ALL(SalesData[SalesRep]))

这将计算每个工作组的平均销售额(不要混淆在ALL函数中使用SalesRep,它与过滤器上下文有关)。

<强> 5。销售差异为每个工作组的平均值

=IF(HASONEVALUE(SalesData[SalesRep]),IF([Sales Amount Average] > 0, [Sales Amount Average] - [Sales Average per Workgroup]),BLANK())

这只是计算给定销售代表的平均销售额与每个工作组的平均销售额之间的差异。结果可能如下所示:

enter image description here

我上传了source file to my public Dropbox folder