PowerBI DAX查询:如何添加Combination表有效期列的过滤条件
DAX查询新增有效期过滤解决方案
你需要在提取Requirement列去重值的环节先对Combination表应用日期过滤规则,可通过新增筛选变量的方式统一处理过滤逻辑,避免重复编写条件,修改后的完整代码如下:
List of Requirement values = VAR __MAX_VALUES_TO_SHOW = 90 // 筛选符合条件的Requirement去重值:排除无有效期、有效期早于当前日期的记录 VAR __FILTERED_REQS = CALCULATETABLE( VALUES('Combination'[Requirement]), NOT(ISBLANK('Combination'[Expiration Date])), 'Combination'[Expiration Date] >= TODAY() ) VAR __DISTINCT_VALUES_COUNT = COUNTROWS(__FILTERED_REQS) RETURN IF( __DISTINCT_VALUES_COUNT > __MAX_VALUES_TO_SHOW, CONCATENATE( CONCATENATEX( TOPN( __MAX_VALUES_TO_SHOW, __FILTERED_REQS, 'Combination'[Requirement], ASC ), 'Combination'[Requirement], ", ", 'Combination'[Requirement], ASC ), ", etc." ), CONCATENATEX( __FILTERED_REQS, 'Combination'[Requirement], ", ", 'Combination'[Requirement], ASC ) )
逻辑说明
CALCULATETABLE函数会先对Combination表应用两个过滤规则:- 排除
Expiration Date为空(无有效期)的行 - 仅保留
Expiration Date大于等于当前日期的行,TODAY()会返回系统当前的日期值,若需要精确到时分秒可替换为NOW()
- 排除
- 后续的去重数量统计、TOPN截取、字符串拼接逻辑全部基于筛选后的集合处理,符合业务需求
内容的提问来源于stack exchange,提问作者TestMcTesterson
相关产品推荐
相关产品推荐

