学习CALCULATE函数(二)

学习CALCULATE函数(二)_第1张图片

上期呢,白茶分享了一些CALCULATE的心得,但是要知道我们在对数据进行分析的时候,往往是多条件参考的,比如说哪个区域、哪个时间点、哪个状态的销售的最好,这就很明显需要我们在计算的时候把这些选项算进去。

(上期链接:学习CALCULATE(一)单条件筛选)

在纸上计算很容易,但是DAX中如何进行呢?

学习CALCULATE函数(二)_第2张图片

来,看下面的例子:

学习CALCULATE函数(二)_第3张图片

这是我们在上一期使用的示例文件,现在我添加了一个下面的维度表:

学习CALCULATE函数(二)_第4张图片

这样的话昨天我们的计算公式就有了很大的调整空间。

销售 = VARSQ =CALCULATE([数量],FILTER('表',[条件]="N"))//这里一样,可以替换成自己的数据VARHQ=CALCULATE([数量],FILTER('表',[条件]="M"))RETURNSQ-HQ

这是我们昨天编写的代码,用途是区分开销售与退货的情况,但是现在我想计算包含产品类别的销售与退货,该如何处理呢?

编写如下代码:

首先是基础的销售聚合代码。

数量=SUM('表'[列])//这里我替换成了示例文件

接下来就开始编写我们的代码:

双条件筛选 =

VAR SA=CALCULATE([数量],FILTER('表',[筛选项]="M" &&[筛选项]="L"))//这里的话自己调整数据

VAR SQ=CALCULATE([数量],FILTER('表',[筛选项]="N" &&[筛选项]="L"))

RETURN

SA-SQ

如下图:

学习CALCULATE函数(二)_第5张图片

计算一张销售表中,分类属于手机的销售与退货情况,其结果如下:

学习CALCULATE函数(二)_第6张图片

结果一目了然,这里解释一下代码含义:

CALCULATE([求和项],这一部分是最终结果的表达式,也就是说无论后面条件怎么样,都是为了这个求和项准备的。

FILTER('表',是为了筛选符合我们要求的有效值。

[条件项]="M",是为了选出符合我们要求的有效值。

&&,这是微软的标准连接字符,表示“并且”的意思,可以与AND替换。

怎么样,是不是这么拆分着说好理解多了?

来,继续我们的例题,还没结束。我现在想知道手机的销售有哪些停产了?这个代码如何进行?来,继续:

学习CALCULATE函数(二)_第7张图片

首先在模型关系中确立二者的联系。

编写如下代码:

VAR SA=CALCULATE([聚合项],FILTER('表1',[条件项1]="M"&&[条件项1]="L"),FILTER('表2',[条件项2]="S"))

VAR SQ=CALCULATE([聚合项],FILTER('表1',[条件项1]="N"&&[条件项1]="L"),FILTER('表2',[条件项2]="S"))

RETURN

SA-SQ

如图:

学习CALCULATE函数(二)_第8张图片

结果如下:

学习CALCULATE函数(二)_第9张图片

是不是达到我们的要求了?

说一下原理,原则上CALCULATE并没有限制筛选条件的数量,理论上是无限的,小伙伴们,GET了没有?

我是白茶,一个PowerBI的初学者。

-END -

学习CALCULATE函数(二)_第10张图片

ID:Storysming

你可能感兴趣的:(学习CALCULATE函数(二))