如何使用 DAX 函数计算上年值
工坊的小伙伴们,周五好啊!关于同期的计算是一个老生常谈的问题,今天我们来看一下计算上年值的几个DAX函数吧~
# ** 数据准备**
我们虚拟从2018年1月至2019年4月的数据,如下:
构造日期表,可采用如下DAX语句构建:
Calendar =
ADDCOLUMNS (CALENDAR ( DATE ( 2017, 1, 1 ), DATE ( 2020, 12, 31 ) ),"年", YEAR ( [Date] ),"季度", "第"& ROUNDUP( MONTH ( [Date]) / 3, 0) & "季度","月", MONTH ( [Date] ),"月份", MONTH ( [Date] )& "月","年月", FORMAT ( [Date], "YYYY/MM" )
)
使用此表达式构造的日期表如下:
此表达式友友们可以研究下用到的几个函数,但无需深究,存起来到时直接使用即可。
# **DATEADD**
将日期表与事实表建立关系,如下:
计算当前年的实际销售金额:
Sales =
SUM ( 'Fact'[订单金额] )
计算上年同期销售金额,我们可以写如下的度量值
Sales_同期 =
CALCULATE ( [Sales],DATEADD ( 'Calendar'[Date],-1, YEAR ))
在报表视图呈现结果如下,与2018年同期数据是吻合的:
而当表中字段为年时,得到的结果不是截至去年同期四月的销售额,而是去年全年的销售额:
同期显示的是全年的数据。
# **PREVIOUSYEAR**
如果使用PREVIOUSYEAR来写上年值的话,那么度量值应该写成:
Sales_PY =
CALCULATE ( [Sales],PREVIOUSYEAR ( 'Calendar'[Date]) )
报表视图中呈现的结果如下:
无论表格中当前行是哪个月,Sales_PY均计算上年一整年的销售额。
# **SAMEPERIODLASTYEAR**
如果使用SAMEPERIODLASTYEAR函数来写上年值的话,那么度量值应该写成:
Sales_SP =
CALCULATE ( [Sales],SAMEPERIODLASTYEAR ( 'Calendar'[Date]) )
报表视图中呈现的结果是:
当表格中放置的列是年时,结果与使用DATEADD计算结果是相同的。
# **PARALLELPERIOD**
如果使用PARRELLPERIOD函数来写上年值的话,那么度量值应该写成:
Sales_PP =
CALCULATE ( [Sales],PARALLELPERIOD ( 'Calendar'[Date],-1, YEAR ))
根据验证,呈现结果与DATEADD函数计算结果相同:
# **总结**
计算上年(同期)值,可使用如下几个函数:
DATEADD,PREVIOUSYEAR,SAMEPERIODLASTYEAR,PARRELLPERIOD。
以下几个表达式从今天的实验结果来看是等价的:
Sales_同期 =
CALCULATE ( [Sales],DATEADD ( ‘Calendar’[Date],-1, YEAR ))
Sales_SP =
CALCULATE ( [Sales],SAMEPERIODLASTYEAR ( ‘Calendar’[Date]) )
Sales_PP =
CALCULATE ( [Sales],PARALLELPERIOD ( ‘Calendar’[Date],-1, YEAR ))
以下表达式总是返回上年一整年的销售额:
Sales_PY =
CALCULATE ( [Sales],PREVIOUSYEAR ( ‘Calendar’[Date]) )
当选择的不是完整的月份而是一个日期段时,这些函数又会有怎么样的表现呢?敬请期待~
** PowerPivot工坊原创文章,转载请注明出处!*
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
如何使用 DAX 函数计算上年值相关推荐
- R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来
R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值.plot.roc函数绘制ROC曲线.添加置信区间.为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来 目录
- R语言difftime函数计算时间差值实战
R语言difftime函数计算时间差值实战 目录 R语言difftime函数计算时间差值实战 #基础语法 #获取difftime语法帮助
- 【OpenCV4】使用 magnitude() 函数计算幅值(c++)
计算公式: d s t ( I ) = x ( I ) 2 + y ( I ) 2 dst(I)=\sqrt{x(I)^2+y(I)^2} dst(I)=x(I)2+y(I)2 表示两个矩阵对应元 ...
- pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe)
pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe) ...
- pandas使用groupby函数和cumsum函数计算每个分组内的数值累加值、并生成新的dataframe数据列( cumulative sum of each group in dataframe
pandas使用groupby函数和cumsum函数计算每个分组内的数值累加值.并生成新的dataframe数据列( cumulative sum of each group in dataframe ...
- R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值、自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N、中位数median、四分位数的间距iqr)
R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值.自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N.中位数median.四分位数的间距iqr) 目录
- R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...
- c语言调用函数计算分段函数值,输入x,计算并输出下列分段函数f(x)的值(保留2位小数) c语言...
计算分段函数输入 x ,计算并输出 y 的值.公式如下 当x >= 0时,f(x) = x^0.5,当x小于0时,f(x #include#include//[1{intmain()//你所写的 ...
- c语言学习-编写函数计算式子:S=2*1*1!+2*2*2!+……+2n*n!的值。要求编写自定义函数分别求解2n和n!,在编写求解S的函数。
编写函数计算式子:S=2 * 1 * 1!+2 * 2 * 2!+--+2n * n!的值.要求编写自定义函数分别求解2n和n!,在编写求解S的函数. 程序流程图: 代码: #include<s ...
最新文章
- [推荐]Angular File Changer (Supporting Touch Bar and NgRx)→用于快速切换同名HTML/SCSS/TS文件,非常的实用
- 用飞桨做自然语言处理:神经网络语言模型应用实例
- python3 签名 sha md5
- 深度学习核心技术精讲100篇(三十四)-智能化搜索,旅行场景下的个性化营销平台揭秘
- QT学习:Qt操作数据库
- [排序][二分][dp]JZOJ 2747 捡金子
- HTTP 200 OK和HTTP 304 Not modified的由来
- 高考学文的能报计算机吗,高考志愿填报时,文科生能申报计算机类相关专业吗?...
- Dying In The Sun
- 在线的代码托管平台 coding.net ===中国扩展版github
- Daily Scrum 10.28
- Git提交代码的处理流程(转)
- Spring揭秘(一)spring框架的由来
- 知识答题小程序功能总结
- bp神经网络算法原理公式,bp神经网络算法推导
- 电脑的脉搏---时钟频率的来龙去脉
- dell服务器全系列手册,DELL服务器 RAID配置中文手册.pdf
- Timer 和TimerTask分析
- 国家集训队论文分类整理[转]
- 《决胜B端》读书笔记04:互联网领域常见产品方向、盈利模式、盈利模式对产品方向的诉求