学习CALCULATE函数(二)修订版

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

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

来,看下面的例子:

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

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

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

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

编写如下代码:

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

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

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

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

如下图:

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

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

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

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

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

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

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

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

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

编写如下代码:

双条件三条件 =
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并没有限制筛选条件的数量,理论上是无限的。


小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

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

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fabric丨白茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值