You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX技术问题:基于filter_id列值筛选同时含指定值的id

DAX实现多值匹配筛选(同时包含指定filter_id的id)

针对你需要筛选出同时包含filter_id=5和filter_id=17的所有id的需求,这里提供几种实用的DAX方案:

方案1:创建计算表直接输出结果

直接生成包含符合条件id的表,替换代码中的你的表名为实际表名即可:

符合条件的ID表 = 
VAR TargetFilters = {5, 17} // 定义需要匹配的filter_id集合
RETURN
SELECTCOLUMNS(
    // 按id分组后,筛选出与目标集合交集数量等于目标数量的id
    FILTER(
        SUMMARIZE('你的表名', '你的表名'[id]),
        COUNTROWS(INTERSECT(VALUES('你的表名'[filter_id]), TargetFilters)) = COUNTROWS(TargetFilters)
    ),
    "id", '你的表名'[id]
)

执行后会得到仅包含id=1和id=3的结果表。

方案2:创建度量值用于可视化筛选

如果需要在报表中动态筛选符合条件的行,可以创建如下度量值:

是否同时包含目标Filter = 
VAR TargetFilters = {5, 17}
// 获取当前id对应的所有filter_id集合
VAR CurrentIDFilters = CALCULATETABLE(VALUES('你的表名'[filter_id]), ALLEXCEPT('你的表名', '你的表名'[id]))
RETURN
// 判断当前id的filter集合是否包含所有目标值
IF(COUNTROWS(INTERSECT(CurrentIDFilters, TargetFilters)) = COUNTROWS(TargetFilters), 1, 0)

在可视化中添加该度量值并筛选值为1的行,即可得到符合条件的id数据。

方案3:简化版计算表(适用于固定两个筛选值)

如果仅需匹配固定的两个值(5和17),可以用更直白的写法:

符合条件的ID表 = 
SELECTCOLUMNS(
    FILTER(
        SUMMARIZE('你的表名', '你的表名'[id]),
        // 检查当前id是否同时存在filter_id=5和17
        CALCULATE(COUNTROWS('你的表名'), '你的表名'[filter_id]=5) > 0 &&
        CALCULATE(COUNTROWS('你的表名'), '你的表名'[filter_id]=17) > 0
    ),
    "id", '你的表名'[id]
)

内容的提问来源于stack exchange,提问作者yellowplum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:45:39