如何基于切片器获取最新可用数据?求DAX实现方案
DAX 实现切片器筛选后显示最新可用数据
核心思路
通过DAX度量值定位切片器筛选范围内的最大日期,再找到该日期之前最后一条有分数记录的日期,最终返回对应分数,解决月度数据缺失时的最新值展示需求。
前提准备
确保报表中有完整的日期表(包含所有年月的连续日期),并与存储评估数据的事实表(含Site、Assessment date、Score字段)通过Assessment date建立单向关系,切片器基于日期表的年、季度、月份字段创建。
DAX度量值代码
Latest Available Score = VAR SelectedMaxDate = MAX('Date'[Date]) VAR LatestValidDate = LASTNONBLANK( FILTER(ALL('YourFactTable'[Assessment date]), 'YourFactTable'[Assessment date] <= SelectedMaxDate), 'YourFactTable'[Score] ) RETURN CALCULATE( MAX('YourFactTable'[Score]), 'YourFactTable'[Assessment date] = LatestValidDate )
注意:将
'Date'替换为你的日期表名称,'YourFactTable'替换为存储评估数据的事实表名称。
代码解释
SelectedMaxDate:提取切片器筛选时间范围的最后一天(例如选择2023年11月时,值为2023-11-30)LatestValidDate:在所有评估日期中,筛选出小于等于SelectedMaxDate的日期,再定位最后一条有分数记录的日期(示例中选11月时,该值为2023-09-14)- 最后通过
CALCULATE返回该日期对应的分数值
示例验证
- 选择2023年11月:返回9月的
3.256 - 选择2023年Q3(7-9月):返回9月的
3.256 - 选择2023年12月:返回12月的
5 - 选择2023年全年:返回12月的
5
扩展说明
如果报表包含多个Site,该度量值会自动适配当前上下文的Site,返回对应站点的最新可用分数,无需额外修改。
内容的提问来源于stack exchange,提问作者ttruhcheva
相关产品推荐
相关产品推荐

