需求:月初时,去年同比的值会很低
YOY Gth%次月第一天才显示数据,当月未过,不显示数据,如果日期切片器中包含当月未过的月份,也不显示数据。
解决:
用CONTAINS函数判断日期切片器与当前日期
一. 日期控件仅单选
1.新建DAX获取当前日期
Localyear = YEAR(TODAY())
Localmonth = MONTH(TODAY())
- 新建DAX判断日期切片器与当前日期
IFLocalMonth = CONTAINS(FILTER('Date','Date'[Date]),'Date'[Year],'#度量值#'[Localyear],'Date'[Month],'#度量值#'[Localmonth])
IF('#度量值#'[判断是否是当前月]=TRUE(),BLANK(),Act/LYAct)
二. 日期控件复选
(即当月时4月时,选3、4月也不显示)
- 从数据源获取两个LY ACT
一个就是原始的,用于显示
一个加判断,当月时为0 ,用于计算YOY
select
[LY_Act]
, case when month(getdate()) = cast(FISCALMONTH as int) then 0 else LY_Act end [LY_Act]
FROM [T_DM_KA_NRKA]
同 一.1 DAX获取当前日期
同 一.2 DAX判断日期切片器与当前日期
新建DAX
//用于显示LY Act
SO.LY Act = SUM('NKA SO'[LY_Act])
//用于计算YOY
SO.LY Act2 = IF('#度量值#'[判断是否是当前月]=TRUE(),0,SUM('NKA SO'[LY_Act2]))
SO.YOY Gth% = DIVIDE([SO.Act]-[SO.LY Act2],[SO.LY Act2])