学习CALCULATE函数(三)

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

继续学习CALCULATE函数,之前分享了利用FILTER进行内部筛选,那么还有什么用法呢?别急,咱们来继续。

涉及到分析数据这一块,那么占比就是一个我们无法绕过的问题,但是占比分为很多样,该如何进行各种层次的计算呢?FOLLOW ME!

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

这是我们头两期非常熟悉的样例数据,本期也还是用这个举例,可以看到我们的销售数据划分为品牌,和相对应的类别,我现在想知道每个产品数量的总体占比,该如何编写DAX代码呢?

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

这是我们熟悉了很久的基础代码,聚合。

首先缕清思路,求总体占比就是求出当下各品类的数量以及总体的情况进行除法运算。而在数据模型中,往往我们的数据是需要更新和受到外部筛选的影响,如何利用函数清除外部筛选条件呢,这里运用了ALL函数,编写如下代码:

总体=CALCULATE('表'[求和项],ALL('表'))//这里需要自己替换数据

这是总体的,之后运用基础的聚合度量值与总体进行除法运算:

总体占比=DIVIDE([数量],[总体])//替换数据

例子如下图:

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

为了省事,写代码的思路是分步骤写的,这里我合并在一起了,说一下ALL在这里的作用,就是在内部的CALCULATE中屏蔽掉外部所有的筛选条件,内部重新设定上下文的结果。

当然,我不光想知道总体占比,我还想知道各个产品在各自所属的类别中是怎么个情况,来,继续:

修改上面的代码如下:

分类占比=CALCULATE('表'[求和项],ALL('表'[类别]))//这里需要自己替换数据

结果如图:

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

很清楚的体现不同名称的销售额在其所属的类别中占比情况。

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

但是呢,咱的问题还没结束,还记得之前白茶建立的维度表么?没错,我现在想筛选几项,就这几项的总体占比情况,咋整?

有请ALLSELECTED登场!

编写如下代码:

筛选总体占比=CALCULATE('表'[求和项],ALLSELECTED('表'[类别]))//这里需要自己替换数据

结果如下:

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

ALLSELECTED在这里的作用就是无论我们怎么筛选,都能保证将我们筛选出来的结果作为一个整体百分比呈现。

那么筛选之后,我还是想知道筛选之后的分类占比,咋整?和上面类似,修改刚才的代码如下:

筛选分类占比=CALCULATE('表'[求和项],ALLSELECTED('表'[类别]))//这里需要自己替换数据

结果如图:

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

对比结果很明显,小伙伴们,GET到了没有?

这里做一下总结:

计算总体占比

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

计算分类占比

DAX=DIVIDE(SUM('表'[求和项]),CALCULATE(SUM('表'[求和项]),ALL('表'[项目])))

计算筛选总体占比

DAX=DIVIDE(SUM('表'[求和项]),CALCULATE(SUM('表'[求和项]),ALLSELECTED('表')))

计算筛选分类占比

DAX=DIVIDE(SUM('表'[求和项]),CALCULATE(SUM('表'[求和项]),ALLSELECTED('表'[项目])))

这里是白茶,一个DAX的初学者....

往期链接:

学习CALCULATE函数(一)单条件筛选

学习CALCULATE函数(二)多条件筛选

-END -

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

ID:Storysming

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