数据可视化之DAX篇(二十八)Power BI时间序列分析用到的度量值,一次全给你
https://zhuanlan.zhihu.com/p/88528732
在各种经营分析报告中,我们常常会看到YTD,YOY这样的统计指标,这样的数据计算并不难,尤其是在PowerBI中,因为有时间智能函数的帮助,大大简化了这些计算,从而快速满足定期的报告需求。
下面就给你列出这些常用统计数据的度量值,帮你快速掌握各种期间数据的算法。
如果对时间智能函数不熟悉,可以先看看这篇文章:
假设数据模型为一张订单表和一张对应的日期表,并已经建立了基础度量值:
收入 = SUM('订单'[销售额])
下面的所有度量值都是以此为基础。
本期至今
XTD Month/Quarter/Year To Date
从本期的第一天到当前日期的累计,比如收入的YTD就是从本年1月1日到当前上下文日期的累计收入,MTD就是当前上下文月份的第一天到当前日期的累计收入。
月初至今
MTD Month To Date
MTD = CALCULATE([收入],DATESMTD('日期表'[日期]))
当然并非只有这一种写法,比如还可以直接用TOTALMTD:
MTD1= TOTALMTD([收入],'日期表'[日期])
下面其他各种计算同理,带数字的度量值是等值的替代写法,熟练掌握其中一种写法就可以了。
季初至今
QTD Quarter To Date
QTD =
CALCULATE([收入],DATESQTD('日期表'[日期]))
QTD1=
TOTALQTD([收入],'日期表'[日期])
年初至今YTD Year To Date
YTD = CALCULATE([收入],DATESYTD('日期表'[日期]))
YTD1= TOTALYTD([收入],'日期表'[日期])

上期的本期至今PXTD Previous Month/Quarter/Year to Date
上期的MTD,简称为PMTD,就是上个月MTD,有了这个数据,计算环比时十分方便;而PYTD,上年的本年至今,计算年累计的同比也需要该数据。
并且在写PXTD时,上面已经建好的XTD度量值也可以直接复用。
上月的月初至今
PMTD Previous Month to Date
PMTD =
CALCULATE([MTD],DATEADD('日期表'[日期],-1,MONTH))
PMTD1=
TOTALMTD([收入],DATEADD('日期表'[日期],-1,MONTH))
上季的季初至今
PQTD Previous Quarter to Date
PQTD =
CALCULATE([QTD],DATEADD('日期表'[日期],-1,QUARTER))
PQTD1=
TOTALQTD([收入],DATEADD('日期表'[日期],-1,QUARTER))
上年的年初至今
PYTD Previous Year to Date
PYTD =
CALCULATE([YTD],DATEADD('日期表'[日期],-1,YEAR))
PYTD1=
TOTALYTD([收入],DATEADD('日期表'[日期],-1,YEAR))
灵活使用时间智能函数,上年的年初至今还有很多种写法,比如:
PYTD2=
CALCULATE([YTD],SAMEPERIODLASTYEAR('日期表'[日期]))
PYTD3=
TOTALYTD([收入],SAMEPERIODLASTYEAR('日期表'[日期]))
PYTD4=
CALCULATE([收入],DATESYTD(SAMEPERIODLASTYEAR('日期表'[日期])))PYTD5= CALCULATE([收入],SAMEPERIODLASTYEAR(DATESYTD('日期表'[日期])))
(从上面的这些度量值也可以看出,SAMEPERIODLASTYEAR的功能都可以用DATEADD来代替;DATESYTD与SAMEPERIODLASTYEAR完全可以互换位置)

上面只是写出了常用的PXTD,可能有些个性的计算不止于此,比如要求计算上个月的QTD,掌握的上面的思路以后,你应该可以很轻松的写出来。
上年的本期至今PY XTD Previous Year Month/Quarter/Year to Date
上年的本年至今,其实通过PXTD的思路也能计算出来,只是因为上年的本期至今太常用了,就单独再介绍一下,只列出一种写法,其他写法也很简单,自己琢磨一下吧。
上年的月初至今
PY MTD Previous Year Month to Date
PY MTD =
CALCULATE([MTD],SAMEPERIODLASTYEAR('日期表'[日期]))
上年的季初至今
PY QTD Previous Quarter Month to Date
PY QTD =
CALCULATE([QTD],SAMEPERIODLASTYEAR('日期表'[日期]))
上年的年初至今
PY YTD Previous Year Month to Date
PY YTD =
CALCULATE([YTD],SAMEPERIODLASTYEAR('日期表'[日期])
PY YTD其实和上面写的PYTD等价。

差异比较
有了上面的这些本期、上期、上年的度量值,再计算与上期的差异,以及同比和环比就非常简单了。
与上个月的差异
MOM Month Over Month
MOM = IF([PMTD]<>BLANK(),[MTD]-[PMTD])
月环比
MOM % Month Over Month Percentage
MOM % =
DIVIDE([MOM],[PMTD])

与上个季度的差异
QOQ Quarter Over Querter
QOQ =
IF([PQTD]<>BLANK(),[QTD]-[PQTD])
季度环比
QOQ % Quarter Over Querter Percentage
QOQ % =
DIVIDE([QOQ],[PQTD])

与上年的差异
YOY Year Over Year
本年累计、本季累计以及本月累计与上年的同期比较,都比较常用,这里都列出来。
本月累计与上年同期的差异YOY MTD = IF([PY MTD]<>BLANK(),[MTD]-[PY MTD])
本季累计与上年同期的差异YOY QTD = IF([PY QTD]<>BLANK(),[QTD]-[PY QTD])
本年累计与上年的差异
YOY YTD =
IF([PY YTD]<>BLANK(),[YTD]-[PY YTD])同比增长
YOY % Year Over Year Percentage
本月累计的同比
YOY MTD% = DIVIDE([YOY MTD],[PY MTD])本季累计的同比
YOY QTD % = DIVIDE([YOY QTD],[PY QTD])本年累计的同比
YOY YTD % = DIVIDE([YOY YTD],[PY YTD])

上面这些关于时间计算的度量值,以及上一篇MAT的计算(Power BI 度量值 | 滚动聚合),记住这些度量值的写法,基本可以满足大部分的正常需求,

上述度量值的示例文件已分享在知识星球,需要的请自行下载练习。
数据可视化之DAX篇(二十八)Power BI时间序列分析用到的度量值,一次全给你的更多相关文章
- 数据可视化之DAX篇(一)Power BI时间智能函数如何处理2月29日的?
https://zhuanlan.zhihu.com/p/109964336 今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,Power ...
- 数据可视化之DAX篇(十一)Power BI度量值不能作为坐标轴?这个解决思路送给你
https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么 ...
- 数据可视化之DAX篇(十七)Power BI表格总计行错误的终极解决方案
https://zhuanlan.zhihu.com/p/68183990 我在知识星球收到的问题中,关于表格和矩阵(以下统称表格)总计行错误算是常见的问题之一了,不少初学者甚为不解,在Excel透视 ...
- 数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?
https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...
- 数据可视化之DAX篇(十八)收藏 | DAX代码格式指南
https://zhuanlan.zhihu.com/p/64422599 为什么要进行格式化? DAX 是一种函数式语言,正如我们已经学习的或者看到的,DAX 代码中总有一些函数带有几个参数,而参数 ...
- 数据可视化之DAX篇(七) Power BI中用DAX生成的表如何添加索引列?
https://zhuanlan.zhihu.com/p/74732578 来源于知识星球中一个星友的问题,使用DAX在PowerBI中新建了一个表,如何为这个表添加索引列呢? 假如数据模型中只有一 ...
- 数据可视化之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/103264851 本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之一,她深入浅出的介绍了PowerBI ...
随机推荐
- 循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
在我们做应用系统的时候,往往都会涉及图表的展示,综合的图表展示能够给客户带来视觉的享受和数据直观体验,同时也是增强客户认同感的举措之一.基于图表的处理,我们一般往往都是利用对应第三方的图表组件,然后在 ...
- mysql索引小总结
MySql 1.索引 mysql索引默认使用的是B+Tree(B-树的变种版).也可以使用HASH表. 二叉树: 二叉树又称二叉搜索树,二叉排序树,特点如下: 左子树上所有结点值均小于根结点 右子树上 ...
- Paper templates for Word(Word论文模板)
经常看论文的朋友可能会发现,像一些大的会议的论文格式都是相同的,他们的格式一般都十分固定,这些论文是用什么软件做出来的呢?一开始我想当然的认为是用LaTeX,因为LaTeX提供了一些文类,我自然而然的 ...
- 使用python求解向量值函数的雅各比(Jacobian)矩阵
考虑一个向量值函数$R^m \rightarrow R^n$,即$\textbf{y} = f(\textbf{x})$,它的雅各比(Jacobian)矩阵定义如下. 下面记录下一段使用python求 ...
- 【JMeter_13】JMeter逻辑控制器__执行时间控制器<Runtime Controller>
执行时间控制器<Runtime Controller> 业务逻辑: 根据输入的Runtime的值,对当前节点下的执行时长进行控制,当执行时长超过限定时长后,执行完当前正在执行的取样器后,跳 ...
- Spring整合JDBC temple
一.Spring对Jdbc的支持 Spring为了提供对Jdbc的支持,在Jdbc API的基础上封装了一套实现,以此建立一个 JDBC 存取框架. 作为 Spring JDBC 框架的核心, JDB ...
- RocketMQ(1)---架构原理及环境搭建
一.架构简述 RocketMQ阿里开源的一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性, 万亿级容量和灵活的可伸缩性.跟其它中间件相比,RocketMQ的特点是纯JAVA实现,在发生宕机和 ...
- OpenResty入门之使用Lua开发Nginx插件
记住一点:nginx配置文件很多坑来源自你的空格少了或多了. OpenResty OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第 ...
- spring boot actuator扩展httptrace的记录
SpringBoot记录HTTP请求日志 1.需求解读 需求: 框架需要记录每一个HTTP请求的信息,包括请求路径.请求参数.响应状态.返回参数.请求耗时等信息. 需求解读: Springboot框架 ...
- JavaWeb网上图书商城完整项目-CommonUtils(1生成uuid,2Map转换成JavaBean)
java工程中添加上面的jar包 CommonUtils类就两个方法: l String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: l T toBe ...