power bi

从一个例子来看Power Pivot中的关系及上下文

2019-06-26  本文已影响5人  Data_Skill

销售表

销售表销售表

客户表

客户表客户表

模型关系

模型关系模型关系

目标要求写出每个客户的平均折扣价的度量值

透视表透视表

度量值书写

平均折扣价:=AverageX ('客户表',
                      AverageX (RelatedTable ( '销售表' ),
                                               Sumx ( RelatedTable ( '销售表' ),
                                                     '销售表'[金额] * '客户表'[折扣]
                                               )
                           )  
                )

解释:

1. 求出客户对应折扣销售金额

Sumx ( RelatedTable ( '销售表' ),
       '销售表'[金额] * '客户表'[折扣]
      )

这里SumX里表达式里是2个不同表的数据,所以通过关联表,先把对应客户的销售都筛选出来,例如A客户

筛选关联客户筛选关联客户

筛选出关联表后,进行迭代计算,用销售表的金额*客户表的折扣

2. 计算每个客户的平均销售金额

AverageX (RelatedTable ( '销售表' ),折扣销售金额合计)

通过关联表可以计算出每个客户对应的平均折扣销售金额

3. 转换度量值书写

AverageX ('客户表',每个客户平均折扣销售金额)

通过AverageX函数再次把添加列的书写方式转换成度量值的书写方式。

因为涉及到上下文,所以如果直接使用var变量赋值的话,会有差异。

另外我们来看另一种写法

AverageX('销售表','销售表'[金额]*Related('客户表'[折扣]))
透视表1透视表1

我们仔细看总计这一栏会有差异。这个差异是什么原因导致的呢?
折扣后总金额为924。

上一篇 下一篇

猜你喜欢

热点阅读