美文网首页power bi
从一个例子来看Power Pivot中的关系及上下文

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

作者: Data_Skill | 来源:发表于2019-06-26 22:04 被阅读5次

销售表

销售表销售表

客户表

客户表客户表

模型关系

模型关系模型关系

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

透视表透视表

度量值书写

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

解释:

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

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

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

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

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

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

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

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

3. 转换度量值书写

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

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

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

另外我们来看另一种写法

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

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

  • 第一种计算方法是以客户表为基础计算的平均价格,最终返回的是3个客户的平均价格的平均值,也就是390/3得到的结果是130。

  • 第二种计算方法是以销售表为基础计算的平均价格,最终返回的是924除以销售表的行数也就是7,得到的结果是132;

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/fytkcctx.html