如何在PowerBI中基于开始日期最小值与结束日期最大值创建筛选
在PowerBI中基于日期极值创建筛选的度量值实现方法
你拥有包含Start date(开始日期)和End date(结束日期)的数据集,需要基于当前上下文下的最小开始日期、最大结束日期创建筛选,可通过以下DAX度量值实现:
1. 基础极值度量值
先创建两个度量值分别获取日期范围的极值:
最小开始日期度量值
Min Start Date = MIN('你的数据表名'[Start date])返回当前筛选上下文里
Start date的最小值。最大结束日期度量值
Max End Date = MAX('你的数据表名'[End date])返回当前筛选上下文里
End date的最大值。
2. 筛选用度量值
根据你的筛选目标选择对应度量值:
场景1:筛选落在极值范围内的日期(需配合独立日期表)
如果使用了独立日期表,创建以下度量值来标记符合条件的日期:
In Date Range = VAR _minStart = [Min Start Date] VAR _maxEnd = [Max End Date] VAR _currentDate = SELECTEDVALUE('日期表'[Date]) RETURN IF(_currentDate >= _minStart && _currentDate <= _maxEnd, 1, 0)
使用方式:将该度量值拖入筛选器面板,设置筛选条件为等于1,即可仅保留落在极值范围内的日期数据。
场景2:筛选原表中完全包含在极值范围内的行
如果要筛选原表中自身日期范围完全处于全局极值内的行,使用以下度量值:
Row In Range = VAR _minStart = [Min Start Date] VAR _maxEnd = [Max End Date] RETURN IF(SELECTEDVALUE('你的数据表名'[Start date]) >= _minStart && SELECTEDVALUE('你的数据表名'[End date]) <= _maxEnd, 1, 0)
使用方式:将该度量值拖入筛选器面板,设置筛选条件为等于1,即可过滤出符合条件的表行。
注意事项
- 所有代码中的
你的数据表名、日期表需替换为你实际使用的表名称; - 建议使用独立日期表并与原表建立正确关系,这能提升筛选逻辑的准确性和报表性能;
- 上下文筛选会影响极值计算结果——页面上的其他筛选器会先缩小数据集,再基于缩小后的数据集计算最小开始日期和最大结束日期。
内容的提问来源于stack exchange,提问作者Bahubali Sharma
相关产品推荐
相关产品推荐

