DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板

DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板

 

难度: ★☆☆☆(2星)

适用范围: ★(3星)

 

概况:

当你有多个度量值都需要计算YTD,MoM,而又不想重复所有这些给每一个度量值分别设定计算度量值的话,有没有一个简便的方法,少点coding呢?

同时,用户通过选择,在同一个visual里面显示不同的度量值(组)。

此文涉及前文DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比的扩展部分,给出具体实例和解决方法。

 

应用场景:

以下是几个应用场景:

  • 用户想在同一个chart显示不同的度量值(组)
  • 避免重复定义一系列度量值

 

最终PowerBI效果显示如下(耐心等待PowerBI 出来,噔噔噔噔~~~)

 如图,1)左侧的YTD根据所选变化而变化;

2)右侧的标题是一个计算值,根据选择动态改变;同样右图中的所有值都根据所选不同而全部改变。

3)表格显示对应的值

 https://app.powerbi.com/view?r=eyJrIjoiYzZlYzgxYzItZTA1ZC00ODVmLTlkNjUtZGRlYjdlMDFjOWNlIiwidCI6ImQxYWY4NDdiLTJjZTEtNDRjYi1iYjUwLWQ1ODAyYmI0M2M4YiIsImMiOjEwfQ%3D%3D

 

欢迎转载,请保留原文链接和作者信息。O(∩_∩)O谢谢。
DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板(Period Table)
作者:马丁叔叔             链接:http://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Parameter-Table-Period-Table-Extension.html

 

 

数据模型:

 

 

 

要点:

这里涉及到一个trick -- switch 语句。 通过switch语句把所选的度量值设到一个generalized的中间变量,再用这个中间变量来计算YTD,MoM等等的值。

 

中间变量

1 _tempMeasure = IF (
2     HASONEVALUE ( 'Measure Selection'[Measure] ),
3     SWITCH (VALUES ( 'Measure Selection'[Measure] ),
4         "Cost", [#Cost]
5         ,"Revenue", [#Revenue]
6         ,"Profit", [#Profit]
7         ,BLANK()) 
8     ,[#Cost])

 

中间变量前值

1 _prevMeasureValue = CALCULATE([_tempMeasure]
2                 , PARALLELPERIOD('Date'[Date], -1, MONTH)
3                 , FILTER(ALL('Date'),'Date'[Date]<= MAX('Fact'[Date]) ) 
4             )

 

  

YTD

1 YTD = CALCULATE([_tempMeasure]
2             , DATESYTD('Date'[Date],"12/31")
3             , FILTER(ALL('Date'),'Date'[Date]<= MAX('Fact'[Date]) ))

 

MoM(环比)

1 MoM % = DIVIDE([_tempMeasure] - [_prevMeasureValue], [_prevMeasureValue])

 


最终效果

参照 上文的PowerBI显示。

 

posted @ 2017-08-16 19:06  马丁叔叔  阅读(4734)  评论(1编辑  收藏  举报