灵魂发问power bi中的Calculate函数到底是什么?

在学习power bi的时候,学习到Calculate的使用时,在下面的一个例子中,突然间搞混了Calculate的使用(只知道怎么用,但是真正用起来确实一脸茫然)
在开始之前,先看看两张基础的表,商品表和销售表
在这里插入图片描述
这两张表的关系如下:
在这里插入图片描述
针对以上,我们建立以下度量值:

总销量 = sum(‘销售表’[销售数量])
A产品销量1 = CALCULATE([总销量],‘商品表’[品名]=“A”)
A产品销量2 = CALCULATE([总销量],‘销售表’[商品名称]=“A”)
A产品销量3 = CALCULATE([总销量],FILTER(‘销售表’,‘销售表’[商品名称]=“A”) )

然后画成矩阵如下:
在这里插入图片描述
从上面开始到下面,如果不认真看看的话,基本上没有问题

但是认真思考两个点

  • A产品销量1、A产品销量2,两者间存在一定的差异,但是对于两者的区别就只是在筛选条件的时候,A产品销量1使用的是商品表的品名作为限制条件,A产品销量2使用的是销售表的商品名称作为筛选条件,这时候,商品名称(外部筛选)选用的是销售表的商品名称。

  • 那如果外部筛选条件选用的是销售表的商品名称,calculate中的限制条件选用的是销售表的商品名称,那它的表现形式为什么是A产品销售量2的形式,而不是A产品销售量1的形式?

CALCULATE的基本使用规则如下:

CALCULATE(度量值/聚合函数,限制条件)

在深入CALCULATE的原来的时候,发现CALCULATE筛选器参数为[列]=值,有一个隐式的转换,在内部计算时,会转换成FILTER(ALL([列],[列]=值)

这时候,外部筛选就相当与没有了,这就导致bcde都是11

如果是使用

A产品销量3 = CALCULATE([总销量],FILTER(‘销售表’,‘销售表’[商品名称]=“A”) )

公式中的filter会迭代CALCULATE默认的隐式转换,就可以获得我们想要的形式了

以下是一些零零碎碎的补充
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/The_dream1/article/details/125663175
今日推荐