美文网首页power bi
DAX函数从A到Z——一个都不能少

DAX函数从A到Z——一个都不能少

作者: PowerPivot工坊 | 来源:发表于2018-01-17 10:47 被阅读1246次

今儿我们要介绍一个筛选器函数“ALL”函数。ALL函数的作用是“返回表中的所有行或者返回列中的所有值,同时忽略可能已应用的任何筛选器。 此函数可用于清除筛选器并对表中的所有行创建计算”。ALL函数只需要填入你不想要被筛选器筛选的字段就可以了。

​例如,我们需要计算每个品类的销售额在总销售额中的占比。我们希望达到的效果是分子位置上是经过品类筛选过的销售额,分母位置上是不被筛选的全部销售额。

理清需求之后,我们就可以开始写公式了

【销售占比 = DIVIDE(SUM('销售'[销售额]),CALCULATE(SUM('销售'[销售额]),ALL('销售'[销售额])))】


上面的公式得到以下结果:

​我们可以明显的发现这个结果是错的。

这是因为在上面的使用过程中,我们没有搞清楚ALL函数究竟是如何作用的。阿航面的错误示范确实是我在接触ALL函数最初所犯的错误。

ALL函数是清除筛选器对表或者对某列数据的作用的,所以在使用ALL函数时,我们需要搞清楚需要清除的筛选条件究竟是什么,而不是使用ALL来直接确保某一列数据全部出现。

所以关于上述案例ALL函数正确的使用方法是,使用ALL函数清除对“品类”的筛选。

【销售占比 = DIVIDE(SUM('销售'[销售额]),CALCULATE(SUM('销售'[销售额]),ALL('销售'[品类])))】


上面的公式得到以下结果:

​这样就得到我们想要的正确的结果了。

​如果问题情境改为,计算每个年度的销售额占近三年销售总额的占比。那么我们就只需要使用ALL函数清除对“年度”的筛选。

【销售占比 = DIVIDE(SUM('销售'[销售额]),CALCULATE(SUM('销售'[销售额]),ALL('销售'[年度])))】


上面的公式得到以下结果:

​ALL函数使用的重点在于理解ALL函数用于清除某个筛选器的筛选作用,而不是直接使某一列或某张表的数据全部出现,所以在ALL函数里的字段是需要被清除的筛选条件字段。

Read after me!

ALL函数里的字段是需要被清除的筛选条件字段!

ALL函数里的字段是需要被清除的筛选条件字段!!

ALL函数里的字段是需要被清除的筛选条件字段!!!

以上,再见!

*Power Pivot工坊原创文章,转载请注明出处。


 延伸阅读:

如何优雅的算出黄道吉日

我敢说这个函数多数人都不知道—HASONEFILTER

PBI 自定义可视化对象介绍——Strippet Browser

用PBI说爱你,每一个角度都是爱你的形状

萌新学BI - Infographic Designer自定义可视化

萌新学Power BI - 又见切片器Chiclet Slicer

萌新学Power BI - 走出Excel思维小胡同

萌新学Power BI - 动人的报表从美美的切片器开始

亮瞎双眼的Power BI自定义可视化图表

一张图看懂微软Power BI系列组件

牛!一张图读懂Power BI 架构

当 Power BI 遇上洪灾

当Power BI 遇上欧冠决赛

当Power BI遇上条形码

当 Power BI 遇上 Visio


如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”


​长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯。欢迎小伙伴儿们转发分享~ 

相关文章

网友评论

    本文标题:DAX函数从A到Z——一个都不能少

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