数据可视化之DAX篇(二十三)ALLEXCEPT应用示例:更灵活的累计求和

Posted qiu-hua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化之DAX篇(二十三)ALLEXCEPT应用示例:更灵活的累计求和相关的知识,希望对你有一定的参考价值。

https://zhuanlan.zhihu.com/p/67441847

累计求和问题,之前已经介绍过(有了这几个公式,你也可以快速搞定累计求和),主要是基于比较简单的情形,针对所有的数据进行累计求和。

现实中的需求并不总是这么简单,稍微复杂一点的是按类别求累计,以帕累托分析为例,模拟数据如下,

 

技术图片

 

这次不是按全部产品进行累计求和,而是在每一个产品类别内部进行累计求和,进而计算出类别内的累计占比。

根据之前学过的知识,其实也可以计算出来,这里直接给出另一种更简洁且性能更优的方式,新建列,

累计销售额 类别 = 
CALCULATE(
    SUM(‘产品表‘[销售额]),
    ‘产品表‘[销售额]>=EARLIER(‘产品表‘[销售额]),
    ALLEXCEPT(‘产品表‘,‘产品表‘[产品类别])
)

结果如下,

技术图片

 

累计占比 类别 = 
DIVIDE(    
    [累计销售额 类别],
    CALCULATE(
        SUM(‘产品表‘[销售额]),
        ALLEXCEPT(‘产品表‘,‘产品表‘[产品类别])
    )
)

 

技术图片

 

这样就可以轻松进行产品类别内部的20/80分类或者ABC分类了。


ALLEXCEPT保留的过滤器,可以只有一列,也可以保留多列,再看下面的例子,

技术图片

这是一张工资表,我们要计算出每名员工截至当月,本年累计的工资数。

这里就是按照员工和年度来求累计,新建列的DAX如下,

本年累计工资 = 
CALCULATE(
    SUM(‘工资表‘[每月工资]),
    ‘工资表‘[年度月份]<=EARLIER(‘工资表‘[年度月份]),
    ALLEXCEPT(‘工资表‘,‘工资表‘[年度],‘工资表‘[姓名])
)

ALLEXCEPT函数中有两个参数列,就是保留了这两个过滤器,结果如下,

技术图片

 

累计工资对每名员工分别求累计,并在新的一年重新开始计算,正是需要的结果。

ALLEXCEPT函数是不是很好用呢?

 

以上是关于数据可视化之DAX篇(二十三)ALLEXCEPT应用示例:更灵活的累计求和的主要内容,如果未能解决你的问题,请参考以下文章

数据可视化之DAX篇(十三)熟练使用FORMAT函数,轻松自定义数据格式

数据可视化之DAX篇(二十一)连接表的几个DAX函数,一次全掌握

数据可视化之DAX篇(二十六)Power BI度量值:滚动聚合

数据可视化之DAX篇(二十七)半累加度量,在Power BI 中轻松处理

数据可视化之DAX篇(二十五)PowerBI常用的度量值:累计至今

数据可视化之DAX篇(二十二)一文搞懂Power BI中的排名问题