请求将指定MDX表达式转换为DAX计算式
MDX转DAX:获取倒数第二个日期的简便写法
原MDX表达式tail({[Calendar].[Time].[dtDate].members},2).item(0)的核心逻辑是:从日期维度的所有日期成员中,取出排序后的倒数第二个日期。
对应的DAX有两种简便实现方式:
方式一:使用TOPN嵌套
VAR AllDates = VALUES(Calendar[dtDate]) RETURN TOPN(1, TOPN(2, AllDates, Calendar[dtDate], DESC), Calendar[dtDate], ASC)
- 逻辑:先通过
TOPN(2, ..., DESC)取出最大的两个日期,再通过TOPN(1, ..., ASC)从这两个日期中取出较小的那个,即倒数第二个日期。
方式二:结合MAX与CALCULATE筛选
CALCULATE( MAX(Calendar[dtDate]), Calendar[dtDate] < MAX(Calendar[dtDate]) )
- 逻辑:先获取全局最大日期,再筛选出小于该日期的所有日期,取其中的最大值,也就是第二大(倒数第二)的日期。
注:上述代码假设你的日期表名为
Calendar,日期列名为dtDate,请根据实际模型调整表名和列名。
内容的提问来源于stack exchange,提问作者Elvira
相关产品推荐
相关产品推荐

