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

学习CALCULATE函数(四)修订版

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

    生活就像一盒巧克力,你永远不知道下一颗是什么味道。

    ​——《阿甘正传》

    在学习CALCULATE过程中,白茶发现了,基本上这个函数是我们使用率最高的一个函数,普通的聚合用SUM、SUMX就可以,但是一旦涉及到有条件聚合的时候,基本上都离不开CALCULATE。而且在日常处理数据时,各式各样的情况层出不穷,本次呢,白茶分享一下以点带面的筛选聚合模式。

    (这里感谢群里@韭菜大佬的点拨,不然会在这里卡很久。)

    话不多说,咱来看示例文件:

    这是白茶做的示例文件,但是思路都是一样的,只是具体内容上有区别。说一下什么意思,就是我们在对某个店进行销售分析的时候,往往需要体现这个地点占总体的比例,这个昨天的文章已经说了,可是我不光想看占比,我还想看具体的数值,例如:当我选择大连的时候,我需要显示大连这个城市和整个辽宁省整体的状况,该如何处理呢?

    可能有的小伙伴会说了,白茶,就你事多,我自己做看分层占比就好了。之前就曾提到过,我们做报表,有时候不单单是只给自己看,还要简化的能直观呈现给别人,能把自己的思想表达出来,对吧。来,我们继续:

    当时我的想法就像下面一样,用ALL清除外部筛选,然后重新定义上下文,然后,就没有然后了。

    这里用的公式如下:

    DAX=
    CALCULATE(SUM('表'[求和项]),ALL('表'[地点]))
    

    和昨天的一样,但是后面卡主了,不知道怎么二次定义上下文。

    曾想过说先用ALL,再用FILTER进行筛选,可是引出了一系列的小坑,比如说建立维度啊,索引啊,但是都绕不过之前的问题,无法选定某个区域,后来韭菜大佬点醒了我。

    用VALUES!

    将代码修改如下:

    DAX=
    CALCULATE(SUM('表'[求和项]),ALL('表'[地点]),VALUES('表'[省份]))
    

    结果如下:

    这次结果是符合我们预期的,解释一下各部分的用意:

    CALCULATE(SUM('表'[求和项],这个之前提到过,是为了聚合,后面所有的条件项都是为了这个聚合做准备。

    ALL('表'[地点]),这个是为了清除所有切片、筛选效果,为后面重新定义求和范围做准备。

    VALUES('表'[省份]),这是重新定义我们的计算范围,VALUES这个函数会受到切片的影响,然后返回唯一值,这不就符合我们的需求了么?选择城市,然后计算整个省份的数值,省份是唯一的。


    小伙伴们❤GET了么?

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

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

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

    相关文章

      网友评论

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

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