搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 如何使用DAX函数计算上年值

如何使用DAX函数计算上年值

2019-10-10
举报



 作者 | 宗琪 


工坊的小伙伴们,好久不见!关于同期的计算是一个老生常谈的问题,今天我们来看一下计算上年值的几个DAX函数吧~


数据准备


我们虚拟从2018年1月至2019年4月的数据,如下:


如何使用DAX函数计算上年值


构造日期表,可采用如下DAX语句构建:


Calendar =
ADDCOLUMNS (
    CALENDAR ( DATE ( 201711 ), DATE ( 20201231 ) ),
    "年"YEAR ( [Date] ),
    "季度""第"
        & ROUNDUPMONTH ( [Date]) / 30) & "季度",
    "月"MONTH ( [Date] ),
    "月份"MONTH ( [Date] )& "月",
    "年月"FORMAT ( [Date]"YYYY/MM" )
)


使用此表达式构造的日期表如下:

 

如何使用DAX函数计算上年值


此表达式友友们可以研究下用到的几个函数,但无需深究,存起来到时直接使用即可。


DATEADD


将日期表与事实表建立关系,如下:


如何使用DAX函数计算上年值


计算当前年的实际销售金额:


Sales =
SUM ( 'Fact'[订单金额] )

计算上年同期销售金额,我们可以写如下的度量值

Sales_同期 =
CALCULATE ( [Sales],DATEADD ( 'Calendar'[Date],-1YEAR ))


在报表视图呈现结果如下,与2018年同期数据是吻合的:


如何使用DAX函数计算上年值


而当表中字段为年时,得到的结果不是截至去年同期四月的销售额,而是去年全年的销售额:


如何使用DAX函数计算上年值


同期显示的是全年的数据。


PREVIOUSYEAR


如果使用PREVIOUSYEAR来写上年值的话,那么度量值应该写成:


Sales_PY =
CALCULATE ( [Sales],PREVIOUSYEAR ( 'Calendar'[Date]) )


报表视图中呈现的结果如下:


如何使用DAX函数计算上年值


无论表格中当前行是哪个月,Sales_PY均计算上年一整年的销售额。


SAMEPERIODLASTYEAR


如果使用SAMEPERIODLASTYEAR函数来写上年值的话,那么度量值应该写成:


Sales_SP =
CALCULATE ( [Sales],SAMEPERIODLASTYEAR ( 'Calendar'[Date]) )


报表视图中呈现的结果是:


如何使用DAX函数计算上年值


当表格中放置的列是年时,结果与使用DATEADD计算结果是相同的。


PARALLELPERIOD


如果使用PARRELLPERIOD函数来写上年值的话,那么度量值应该写成:


Sales_PP =
CALCULATE ( [Sales],PARALLELPERIOD ( 'Calendar'[Date],-1YEAR ))


根据验证,呈现结果与DATEADD函数计算结果相同:


如何使用DAX函数计算上年值


总结


计算上年(同期)值,可使用如下几个函数:

DATEADD,PREVIOUSYEAR,SAMEPERIODLASTYEAR,PARRELLPERIOD。

以下几个表达式从今天的实验结果来看是等价的:


  • Sales_同期 =
    CALCULATE ( [Sales],DATEADD ( 'Calendar'[Date],-1YEAR ))

  • Sales_SP =
    CALCULATE ( [Sales],SAMEPERIODLASTYEAR ( 'Calendar'[Date]) )

  • Sales_PP =
    CALCULATE ( [Sales],PARALLELPERIOD ( 'Calendar'[Date],-1YEAR ))


以下表达式总是返回上年一整年的销售额:


Sales_PY =
CALCULATE ( [Sales],PREVIOUSYEAR ( 'Calendar'[Date]) )


当选择的不是完整的月份而是一个日期段时,这些函数又会有怎么样的表现呢?敬请期待~


如何使用DAX函数计算上年值


* PowerPivot工坊原创文章,转载请注明出处!


延伸阅读:








 

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《如何使用DAX函数计算上年值》的版权归原作者「PowerPivot工坊」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

举报