如何使用DAX函数计算上年值 | 您所在的位置:网站首页 › 去年同期数据怎么计算 › 如何使用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工坊原创文章,转载请注明出处! 延伸阅读:AVERAGEX:一个值得你花时间探索的函数 Excel调用数据模型,可以这样做! EARLIER函数精细化计算行间差 在Power Pivot中用DATEDIFF函数计算两个日期之间的间隔 DATESINPERIOD:计算过去某段时间的指标 如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。 长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
|
CopyRight 2018-2019 实验室设备网 版权所有 |