数据可视化之dax篇(二十三)allexcept应用示例:更灵活的累计求和(代码片段)

qiu-hua qiu-hua     2023-03-20     261

关键词:

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篇(二十一)连接表的几个dax函数,一次全掌握

https://zhuanlan.zhihu.com/p/67015995编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用PowerBI分析产品关联度?),需要找出同时购买两种商品的客户,就是计算A商品的客户列表... 查看详情

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

https://zhuanlan.zhihu.com/p/85996745上一篇文讲了累计聚合,这篇文章继续讲一下滚动聚合,比如常用的MAT计算,MovingAnnualTotal,滚动年度总计,即向前滚动12月的合计数。滚动年度求和,也经常用于财务上的滚动预算,看完这篇文章,你... 查看详情

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

https://zhuanlan.zhihu.com/p/96823622?开始半累加的计算之前,我们先看看什么是累加、半累加以及不可累加数据。在含有大量行的数据表中,各种数据处理语言,包括DAX,为了性能考虑,不太可能总是检索表的每一行,更常见的情形是... 查看详情

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

https://zhuanlan.zhihu.com/p/68384001本文聊聊在PowerBI中如何进行各种类型的排名问题。 PowerBI中计算排名主要使用RANKX函数,关于该函数的具体语法,不再细说,可以查看该函数的官方文档,也可以参照这个函数卡片: ↑知识... 查看详情

数据可视化之dax篇(二十四)powerbi应用技巧:在总计行实现条件格式

https://zhuanlan.zhihu.com/p/98975646如何将表格或者矩阵中值的条件格式也应用于总计行?目前PowerBI并不支持这种功能,无法在总计行或者小计行上应用条件格式,不过我们可以摸索个变通的方式来实现。以制作红绿灯效果这篇文章的... 查看详情

数据可视化之dax篇(二十八)powerbi时间序列分析用到的度量值,一次全给你

https://zhuanlan.zhihu.com/p/88528732在各种经营分析报告中,我们常常会看到YTD,YOY这样的统计指标,这样的数据计算并不难,尤其是在PowerBI中,因为有时间智能函数的帮助,大大简化了这些计算,从而快速满足定期的报告需求。下面... 查看详情

数据可视化之dax篇(十六)如何快速理解一个复杂的dax?这个方法告诉你

https://zhuanlan.zhihu.com/p/64422393经常有朋友提出一个问题,然后我给出一个DAX之后,TA又不是很理解,反复多次沟通才能把一个表达式讲清楚。或者TA自己写了一个度量值,可是对输出结果无法理解:我想要的是A,为什么出来的是B?... 查看详情

数据可视化之dax篇(十八)收藏|dax代码格式指南

https://zhuanlan.zhihu.com/p/64422599为什么要进行格式化? DAX是一种函数式语言,正如我们已经学习的或者看到的,DAX代码中总有一些函数带有几个参数,而参数还可以是其他函数所构成,参数的数量以及嵌套的层数决定了DAX代码... 查看详情

数据可视化之dax篇(十四)dax函数:related和relatedtable

https://zhuanlan.zhihu.com/p/64421378Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很多局限性。这里不讨论VLOOKUP,而是学习一个和VLOOKUP功能很相似的DAX函数:REL... 查看详情

数据可视化之dax篇powerbi度量值不能作为坐标轴?这个解决思路送给你

https://zhuanlan.zhihu.com/p/79522456对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现。尤其是初学者,更是习惯性的想这么做。PowerBI星球嘉宾天行,摸索出了一个解决该问题的思路,请慢慢品... 查看详情

数据可视化之dax篇(十九)值得你深入了解的函数:summarize

https://zhuanlan.zhihu.com/p/66424209SUMMARIZE函数非常强大,掌握以后表面上看也非常好用,所以我专门写篇文章介绍一下这个函数,至于是否一定要使用该函数,请看完再决定。  SUMMARIZE,单纯从英文语义上看,是汇总、总结的... 查看详情

数据可视化之dax篇(十五)powerbi按表筛选的思路

https://zhuanlan.zhihu.com/p/121773967?数据分析就是筛选、分组、聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特定的维度值构成的表,作为条件表来筛选原始表。也就是说,... 查看详情

数据可视化之dax篇掌握时间智能函数,同比环比各种比,轻松搞定!

https://zhuanlan.zhihu.com/p/55841964时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析。假设要计算上年同期的销量,在PowerBI中可以用CALCULATE来写个度量值[上年同期],=CALCULATE([数量],SAMEPERIODLASTYEAR... 查看详情

数据可视化之dax篇(十七)powerbi表格总计行错误的终极解决方案

https://zhuanlan.zhihu.com/p/68183990我在知识星球收到的问题中,关于表格和矩阵(以下统称表格)总计行错误算是常见的问题之一了,不少初学者甚为不解,在Excel透视表中很常见的总计,为什么到了更强大的PowerBI中,反而会出现这... 查看详情

初级算法探索——动态规划篇(二十三)

未完待续 查看详情

angularjs学习篇(二十三)

AngularJS路由AngularJS路由允许我们通过不同的URL访问不同的内容。通过AngularJS可以实现多视图的单页Web应用(singlepagewebapplication,SPA)。通常我们的URL形式为 http://runoob.com/first/page,但在单页Web应用中AngularJS通过 #+标记 ... 查看详情

dax强制allexcept函数在没有销售的地方返回空白(代码片段)

...按类别计算总数。类别在维度表中。这里是示例文件:DAXALLEXCEPTmakingcrossjoin.pbix我有以下模型:这些是我的预期结果。按颜色总计:我认为我可以通过以下措施获得预期的结果:ALLEXCEPT_color=CALCULATE([Sales],ALLEXCEPT(FactTable,--surprisingl... 查看详情

jmeter(二十三)jmeter-question之“批量造数据”

...订单”,“那个某某某,给购物车增添几个产品”,“在数据库加几百条数据”。。。等等,通常少数量,或者能够人为解决的就人工解决,那么如果是数量比较大,数万条数据,总不可能一条一条进行增添吧?  So,在造数... 查看详情