Power BI表格如何基于切片器最大日期仅显示过去3个月数据?
解决方案:修改度量值实现需求
要实现基于切片器所选最大日期仅显示过去3个月治疗次数的需求,核心是修改「Treatment Count」度量值,无需调整表格的基础展示设置(若模型无独立日期表,建议补充创建以提升筛选稳定性)。
修改后的度量值示例
假设你的数据表中包含日期列Date,修改后的DAX代码如下:
Treatment Count = VAR MaxSelectedDate = MAX('MyTable'[Date]) VAR ThreeMonthsAgo = EDATE(MaxSelectedDate, -3) RETURN COUNTROWS( FILTER( 'MyTable', ('MyTable'[Successful Run?] = "Y" || 'MyTable'[Successful Run?] = "N") && NOT CONTAINSSTRING('MyTable'[Type], "rinse") && 'MyTable'[Date] > ThreeMonthsAgo && 'MyTable'[Date] <= MaxSelectedDate ) )
适配年月列的调整
若你的表格直接用「年月」文本列(如202405)分组,需要先将年月转换为日期格式,调整MaxSelectedDate的定义:
VAR MaxSelectedDate = DATE(LEFT(MAX('MyTable'[年月]),4), RIGHT(MAX('MyTable'[年月]),2), 1)
关键逻辑说明
- 获取切片器最大日期:通过
MAX('MyTable'[Date])提取切片器选中范围内的最晚日期 - 计算3个月前的日期:用
EDATE函数将最大日期往前推3个月,确定筛选的起始边界 - 追加日期范围筛选:在原有过滤条件(成功/失败标记、排除rinse类型)基础上,增加日期区间的限制,确保只统计目标范围内的数据
额外建议
如果你的数据模型中没有独立的日期表,建议创建一个包含连续日期的日期表,并与MyTable建立关联关系,这样日期筛选会更稳定,避免因原数据表中日期断档导致的计算误差。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

