数据可视化之DAX篇(二十五)PowerBI常用的度量值:累计至今
https://zhuanlan.zhihu.com/p/64999937
经常碰到本年至今、本月至今的数据计算,其实还有一类计算是,从历史最早日期至今的累计计算,比如从开业到现在总共卖出了多少件商品,累计实现了多少销售额等。
本年累计称为YTD,历史至今的累计是不是可以称为HTD呢:) ;这样的时间段很可能是跨年的,所以时间智能函数并不适用,不过不用时间智能函数依然可以很简单的进行计算。
模拟数据如下:

只是计算一个整体累计销售额很简单,我们想要计算的是从最初到任意一个日期的累计销售额,为了能一次计算出各种粒度的历史至今,可以先构造一个日期表并建立关系。(参考:玩PowerBI必备的日期表制作方式汇总)
然后写个度量值,
历史至今 累计收入 =
CALCULATE(
SUM('订单表'[销售额]),
FILTER(
ALL('日期表'),
'日期表'[日期]<=MAX('日期表'[日期])))
然后在矩阵中看看结果,

结果正是历史所有订单的累计销售额,这个度量值的关键是用MAX函数获取当前上下文的日期,然后返回小于等于当前日期的所有销售额的合计。
这个度量值写法有一个问题,就是它把日期表中所有的日期都计算了一遍,其实大于最后一个订单日期的无须计算,因为结果并不会发生变化。
为了解决这个问题,可以先把最后一个订单日期找出来:
订单最大日期 = MAXX(ALL('订单表'),'订单表'[订单日期])
然后在历史累计中增加个判断条件,
历史至今 累计收入 优化 =
IF(
MIN('日期表'[日期])<=[订单最大日期],
CALCULATE(
SUM('订单表'[销售额]),
FILTER(
ALL('日期表'),
'日期表'[日期]<=MAX('日期表'[日期]))))
再来看一下结果,

正是期望的效果。
历史至今的聚合计算,不一定只是累计求和,还可以找出历史上最大的订单金额,或者历史至今的平均订单金额,这些情况只需要改一下聚合函数就行了,比如平均订单金额就是把SUM改成AVERAGE,
历史至今 平均订单订单 =
IF(
MIN('日期表'[日期])<=[订单最大日期],
CALCULATE(
AVERAGE('订单表'[销售额]),
FILTER(
ALL('日期表'),
'日期表'[日期]<=MAX('日期表'[日期]))))
最大最小订单同理,不再一一列出,结果如下:

数据可视化之DAX篇(二十五)PowerBI常用的度量值:累计至今的更多相关文章
- 数据可视化之DAX篇(十五)Power BI按表筛选的思路
https://zhuanlan.zhihu.com/p/121773967 数据分析就是筛选.分组.聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特 ...
- 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...
- 数据可视化之DAX篇(十六)如何快速理解一个复杂的DAX?这个方法告诉你
https://zhuanlan.zhihu.com/p/64422393 经常有朋友提出一个问题,然后我给出一个DAX之后,TA又不是很理解,反复多次沟通才能把一个表达式讲清楚.或者TA自己写了一个 ...
- 数据可视化之PowerQuery篇(十五)如何使用Power BI计算新客户数量?
https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...
- 数据可视化之DAX篇(十)在PowerBI中累计求和的两种方式
https://zhuanlan.zhihu.com/p/64418286 假设有一组数据, 已知每一个产品贡献的利润,如果要计算前几名产品的贡献利润总和,或者每一个产品和利润更高产品的累计贡献占总体 ...
- 数据可视化之DAX篇(十九)值得你深入了解的函数:SUMMARIZE
https://zhuanlan.zhihu.com/p/66424209 SUMMARIZE函数非常强大,掌握以后表面上看也非常好用,所以我专门写篇文章介绍一下这个函数,至于是否一定要使用该函数,请 ...
- 数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE
https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很 ...
- 数据可视化之DAX篇(十八)收藏 | DAX代码格式指南
https://zhuanlan.zhihu.com/p/64422599 为什么要进行格式化? DAX 是一种函数式语言,正如我们已经学习的或者看到的,DAX 代码中总有一些函数带有几个参数,而参数 ...
- 数据可视化之DAX篇(二十八)Power BI时间序列分析用到的度量值,一次全给你
https://zhuanlan.zhihu.com/p/88528732 在各种经营分析报告中,我们常常会看到YTD,YOY这样的统计指标,这样的数据计算并不难,尤其是在PowerBI中,因为有时间 ...
- 数据可视化之DAX篇(十一)Power BI度量值不能作为坐标轴?这个解决思路送给你
https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么 ...
随机推荐
- node-sass问题
cnpm install node-sass@latest 或者 所以用npm install -g cnpm --registry=https://registry.npm.taobao.org , ...
- 让人又爱又恨的Lombok,到底该不该用
1 简介 Lombok,印尼的一个岛屿,龙目岛.但在Java的世界里,它是一个方便的类库,能提供很多便利,因此得到许多人的青睐.但也有不少反对声音.这是为什么呢? 之前去龙目岛拍的日落. 2 Lomb ...
- NAT网络地址转化和DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理.分配IP地址,使网络环境中的主机动态的获得I ...
- linux服务器安装宝塔以及一些坑
首先在linux 下运行这一步命令yum install -y wget && wget -O install.sh http://download.bt.cn/install/ins ...
- springboot mybatis plus多数据源轻松搞定 (上)
在开发中经常会遇到一个程序需要调用多个数据库的情况,总得来说分为下面的几种情况: 一个程序会调用不同结构的两个数据库. 读写分离,两个数据结构可能一样高,但是不同的操作针对不同的数据库. 混合情况,既 ...
- 01 . 容器编排简介及Kubernetes核心概念
Kubernetes简介 Kubernetes是谷歌严格保密十几年的秘密武器-Borg的一个开源版本,是Docker分布式系统解决方案.2014年由Google公司启动. Kubernetes提供了面 ...
- oracle自定义split分割函数
函数如下: create or replace FUNCTION fn_rme_split(p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN rme ...
- 基数排序(Java)
基数排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 基数排序(桶排序)介绍 基数排序(radix sort)属 ...
- CSS布局之盒子模型[一]
每个HTML标签都会生成一个盒模型,盒模型是正常流布局非常重要的概念.盒模型由内边距(padding)+长度(width)+高度(height)+边框(border)+外边距(margin)组成. 1 ...
- centos7时间调整
查看时区是否正确,命令date -R: 不正确先调整时区,命令tzselect: 安装ntp,命令yum install ntp: 同步时间,命令ntpdate cn.pool.ntp.org: 设置 ...