DAX含SWITCH的表达式工作原理?如何修改实现YTD统计?
修改DAX度量实现年初至今(YTD)数据统计
你原来的DAX度量是用来获取上月的年、月及月份名称,若要实现**截止到上月末的年初至今(YTD)**统计,可以按以下方式修改各度量,同时提供核心的YTD统计度量:
一、调整辅助度量
1. mYear(YTD对应的年份)
原逻辑是1月取去年、其他月份取今年,这个逻辑适配截止上月末的YTD场景(1月时YTD为去年全年,其余月份为当年1月到上月),可以简化写法:
mYear = IF(MONTH(TODAY())=1, YEAR(TODAY())-1, YEAR(TODAY()))
2. mMonth(YTD的截止月份)
同样沿用取上月月份的逻辑,简化后:
mMonth = IF(MONTH(TODAY())=1, 12, MONTH(TODAY())-1)
3. mMonth_name(截止月份名称)
这个度量无需修改,基于调整后的mMonth依然能正确生成月份缩写:
mMonth_name = FORMAT(DATE(1,[mMonth],1),"MMM")
二、核心YTD统计度量
基于上面的辅助度量,以统计销售额为例,编写YTD累计度量:
Sales_YTD = VAR EndDate = DATE([mYear], [mMonth], EOMONTH(DATE([mYear], [mMonth],1),0)) VAR StartDate = DATE([mYear], 1, 1) RETURN CALCULATE( SUM('销售表'[销售额]), '销售表'[日期] >= StartDate && '销售表'[日期] <= EndDate )
如果你需要的是到当前日期的自然年初至今,无需辅助度量,直接用DAX内置函数即可:
Sales_YTD = CALCULATE(SUM('销售表'[销售额]), DATESYTD('销售表'[日期]))
内容的提问来源于stack exchange,提问作者Nuel
相关产品推荐
相关产品推荐

