美文网首页BI学习笔记
学习CALCULATE函数(一)修订版

学习CALCULATE函数(一)修订版

作者: Fabric丨白茶 | 来源:发表于2020-06-07 15:10 被阅读0次

    有位大佬曾经告诉过我,如果你深入理解了CALCULATE,那么你就相当于理解了DAX函数的基础,因为它是DAX函数中最灵活多变,也是适应性最强的函数之一。

    CALCULATE的语法结构

    DAX=
    CALCULATE(<expression>,<filter1>,<filter2>...)
    

    第一参数是计算的表达式,可以进行各种聚合运算

    从第二参开始,是一系列的筛选条件,可以为空,如果是多个筛选条件的话,用半角逗号分隔开

    返回结果为筛选出所有筛选条件的交集,并根据第一参的表达式计算出相对应的结果

    ◆ ◆ ◆◆ ◆

    如果非要用几个简短的词汇来概括的话,白茶个人的理解就是:聚合、筛选、重新调整上下文条件。(不喜勿喷)

    干说没啥意思,咱看下面这个例子:

    这是事先准备好的示例文件,将其导入PowerBI中,如图:

    可以看出来,这一部分的销售数据包含着手机、电脑,两种类型。夹杂着不同品牌、不同的售货方式,那么我们该如何对产品数量进行聚合呢?

    编写如下代码:

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

    如下图:

    呈现结果如图,很明显,我们想要的是分别计算销售和退货,这样才符合我们对销售数量的计算,继续编写如下代码:

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

    其结果如下:

    怎么样,是不是按照我们的要求来了?

    解释一下代码的意义。

    VAR是将变量转换为常量,方便根据外部筛选计算,同时可以节省代码空间;SQ在这里的公式意义是聚合在表中销售方式为“销售”的数量,HQ是聚合“退货”的数量,并且还有在最后进行总数量计算。

    在这里就是运用了CALCULATE的第二参筛选,使其符合我们心中的预期计算。(注释:CALCULATE中的参数也可以是常量,常量是不需要嵌套FILTER,只有是变量才需要嵌套。)

    这是CALCULATE最经典的用法之一,单条件筛选求和,以后会继续分享学习CALCULATE的其他心得。我是白茶,一个PowerBI的初学者。


    小伙伴们❤GET了么?

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

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

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

    相关文章

      网友评论

        本文标题:学习CALCULATE函数(一)修订版

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