前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI 计算 MTD 的去年同期存在的陷阱

PowerBI 计算 MTD 的去年同期存在的陷阱

作者头像
BI佐罗
发布2021-07-29 11:06:05
1.1K0
发布2021-07-29 11:06:05
举报
文章被收录于专栏:PowerBI战友联盟PowerBI战友联盟

在 Power BI 的 度量值 的表达方面,BI 佐罗 提出了定语后置命名法,如下:

代码语言:javascript
复制
KPI.MTD.PY = ...
KPI.PY.MTD = ...

前者表示:

将 KPI 的计算放置在 PY 的环境中,再放置在 MTD 的环境中,因此,相当于去年同期的 MTD 的 KPI。

后者表示:

将 KPI 的计算放置在 MTD 的环境中,再放置在 PY 的环境中,因此,相当于 MTD 的去年同期的 KPI。

那么这两者是否有区别呢?

这两者的确是有区别的。

例如:对于 2.28 日的处理。

去年同期的 MTD

直接测试:

代码语言:javascript
复制
EVALUATE
CALCULATETABLE(
    
    DATEADD( DATESMTD( '日期'[日期] ) , -1 , YEAR ) ,

    TREATAS( { DATE( 2021,2,28 ) } , '日期'[日期] ) 
)

结果为:

该计算,先计算 MTD 的区间,再移动到去年同期的位置。由于 MTD 带有月末,所以在移动到去年同期时,也就可以有效的处理月末,即使是不同的日期。

MTD 的去年同期

直接测试:

代码语言:javascript
复制
EVALUATE
CALCULATETABLE(
    
    DATESMTD( DATEADD( '日期'[日期] , -1 , YEAR ) ),

    TREATAS( { DATE( 2021,2,28 ) } , '日期'[日期] ) 
)

结果为:

该计算,先计算去年同期,再扩展到 MTD 的范围。由于某日的去年同期仍是某日,而在那年的 MTD 也是参照该日进行。这样就对闰月的处理有问题。

任意 KPI 的计算

若表达某 KPI 计算的度量值为:

代码语言:javascript
复制
KPI = ...

则其正确的去年同期的 XTD 或 XTD 的去年同期的计算公式为:

代码语言:javascript
复制
KPI.XTD.PY 或 KPI.PY.XTD
= 
CALCULATE( 
    [KPI] , 
    DATEADD( DATESXTD( '日期'[日期] ) , -1 , YEAR )
)

其中,DATESXTD 为:DATESMTD 或 DATESQTD 或 DATESYTD。

总结

此前,我们已经给出时间智能函数计算的终极理解方法,那就是:

  • 移动
  • 缩放
  • 移动 + 缩放 的排列组合
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI战友联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 去年同期的 MTD
  • MTD 的去年同期
  • 任意 KPI 的计算
  • 总结
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档