数据可视化之DAX篇(二十七)半累加度量,在Power BI 中轻松处理
https://zhuanlan.zhihu.com/p/96823622
开始半累加的计算之前,我们先看看什么是累加、半累加以及不可累加数据。
在含有大量行的数据表中,各种数据处理语言,包括DAX,为了性能考虑,不太可能总是检索表的每一行,更常见的情形是,一次性检索成千上万行,处理如此多行数据的最有效操作就是将它们加到一起,也就是累加汇总。
可以累加的数据类型就是可累加数据,比如订单表中的销售额,就是这种类型,无论是按照客户维度还是按照时间维度,都可以将每行的销售额直接汇总,并且这种汇总的结果都是有效的、有意义的。
但有些数据是不可累加的,比如价格,虽然是数值,但无论如何累加都是没有意义的,这就是不可累加数据,这类数据最常用的操作是计数或者取平均值。
还有些数据在某些情况下可以累加,但在特定情况下不可累加,比如银行账户的资金余额,可以按照客户维度进行汇总,但并不能按照时间维度进行每日资金余额的汇总操作,每日余额的汇总是没有意义的,这样的数据类型就称为半累加数据。
在这三种类型中,最灵活最有用的当然是完全可累加数据,也是我们最常用的;而不可累加数据是最不灵活的,甚至可以当成是文本类型来看待。
居于其中的就是半累加数据,下面根据一个小例子来理解半累加度量,并看看如何在Power BI中进行它的计算。
假设每日库存余额的数据如下:

新建一个基础度量值:
库存 = SUM('库存表'[库存余额])
半累加度量的可累加属性
当计算每日的库存合计余额时,结果是这样的,

每日的库存余额合计,实际上是在商品维度上汇总,此时体现的是它在商品维度的可累加属性。
半累加度量的不可累加属性
如果上下文是月份,把这个[库存]度量值放进去,结果是这样的,

这个结果实际上是每日的库存余额简单相加,明显是无意义的数字,这时就体现了库存余额在时间维度的不可累加属性。
对于这个不可累加属性,库存更常见的计算是期末余额,实际上就是最后一天的余额,建个度量值如下:
期末库存余额 = CALCULATE([库存],LASTDATE('日期表'[日期]))
结果如下:

这样1月和2月的结果就正确了,但有个问题是3月份竟然返回了空值?
这是因为LASTDATE返回的当前月份的最后一天,如果每日的库存数据都很完整,这样没有问题,但实际情况是有些数据只显示工作日的库存,比如上面的例子,3月31日是周末,3月份库存余额记录的最后一天是3月29日。
因此需要计算最后一个有数据的日期的库存余额,修改度量值如下,
期末库存余额 优化= CALCULATE([库存],FILTER(ALL('日期表'),'日期表'[日期]=MAX('库存表'[日期])))
这样就计算出了正确的结果,

还有个更简单的写法是利用LASTNONBLANK函数,找到最后一个有余额的日期,然后再计算该日期的库存余额,
期末库存余额 优化2= CALCULATE([库存],LASTNONBLANK('日期表'[日期],[库存]))
上面DAX的计算原理,就是先找出最后一天的日期,然后在这个日期,计算所有商品的累计库存余额。
通过这个计算过程就能很清晰的理解半累加度量在时间维度上不可累加、在其他维度上可累加的属性。
半累加度量的计算应注意细节,因为是数值型,在任一维度上累加都不会报错,但某些结果很可能是无效的;不过当你清晰的认识到这个属性以后,利用灵活的DAX,顺畅的进行各种半累加度量的计算并不会成为问题。
数据可视化之DAX篇(二十七)半累加度量,在Power BI 中轻松处理的更多相关文章
- 数据可视化之 图表篇(四) 那些精美的Power BI可视化图表
之前使用自定义图表,每次新打开一个新文件时,都需要重新添加,无法保存,在PowerBI 6月更新中,这个功能得到了很大改善,可以将自定义的图表固定在内置图表面板上了. 添加自定义图表后,右键>固 ...
- 数据可视化之DAX篇(十七)Power BI表格总计行错误的终极解决方案
https://zhuanlan.zhihu.com/p/68183990 我在知识星球收到的问题中,关于表格和矩阵(以下统称表格)总计行错误算是常见的问题之一了,不少初学者甚为不解,在Excel透视 ...
- 数据可视化之PowerQuery篇(十五)如何使用Power BI计算新客户数量?
https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...
- 数据可视化之DAX篇(一)Power BI时间智能函数如何处理2月29日的?
https://zhuanlan.zhihu.com/p/109964336 今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,Power ...
- 数据可视化之DAX篇(二)Power BI中的度量值和计算列,你搞清楚了吗?
https://zhuanlan.zhihu.com/p/75462046 对于初学者,总是会把度量值和计算列搞混,我也经常碰到这样的问题,有些星友用文章中的代码总是报错,发给我一看,才知道TA把本来 ...
- 数据可视化之DAX篇(二十一)连接表的几个DAX函数,一次全掌握
https://zhuanlan.zhihu.com/p/67015995 编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用Power BI分析产品 ...
- 数据可视化之DAX篇(二十八)Power BI时间序列分析用到的度量值,一次全给你
https://zhuanlan.zhihu.com/p/88528732 在各种经营分析报告中,我们常常会看到YTD,YOY这样的统计指标,这样的数据计算并不难,尤其是在PowerBI中,因为有时间 ...
- 数据可视化之DAX篇(十一)Power BI度量值不能作为坐标轴?这个解决思路送给你
https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么 ...
- 数据可视化之DAX篇(二十)Think in DAX 之报表自动化实践
https://zhuanlan.zhihu.com/p/107672198 本文来自星友袁佳林的实践分享,他参加了PowerBI星球中的DAX圣经第二版100天学习打卡活动,已持续分享近100天, ...
随机推荐
- EIGRP-11-弥散更新算法-EIGRP中的本地计算和弥散计算
至此,我们已经了解了诸多概念: RD (报告距离). CD (计算距离). FD (可行距 离)和FC (可行性条件) ,在此基础上继续了解EIGRP对于拓扑变化的应对方法想必是轻松愉快的.能够导致拓 ...
- nsswitch名称解析框架
name service switch 名称解析框架(逻辑图) 让多种应用程序能灵活进行名称解析的通用框架 与各种类型存储进行交互的公共实现 规定通过哪些途径以及按照什么顺序通过这些途径来查找特定类型 ...
- 04 . Docker安全与Docker底层实现
Docker安全 Docker安全性时,主要考虑三个方面 # 1. 由内核的名字空间和控制组机制提供的容器内在安全 # 2. Docker程序(特别是服务端)本身的抗攻击性 # 3. 内核安全性的加强 ...
- 《ElasticSearch入门》一篇管够,持续更新
一.顾名思义: Elastic:灵活的:Search:搜索引擎 二.官方简介: Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTf ...
- 使用Python解密仿射密码
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文“DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS” 想解密这个密文,首先必须要知道仿 ...
- 为什么Web开发人员在2020年不用最新的CSS功能
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/why-masses-are-not-usi ...
- 从Spring Initializr开始
出识springcloud我们这里需要建立两个项目 来感受下微服务 一.配置服务 1. Spring Initializr. 用idea自带的 Spring Initializr. 建立第一个项目 2 ...
- 关于日期格式你必须知道的坑( yyyy-MM-dd HH:mm:ss)
java中的的日期格式为: yyyy-MM-dd HH:mm:ss:代表将时间转换为24小时制,例: 2018-06-27 15:24:21yyyy-MM-dd hh:mm:ss:代表将时间转换为12 ...
- 03.基于测试开发讲解和Cobertura框架介绍
首先我们先 CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(200) DEFAULT ...
- viewerjs 在html打开图片或打开pdf文件使用案例
开发者常用到在线访问pdf,txt,浏览图片的插件,这里推荐viewer.js这个插件,简单好用.它的核心亮点就是查看图片和pdf功能.老早以前就用过的,昨天一个小伙伴问我Android开发在线浏览p ...