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

如何用DAX实现多CONTAINSSTRING条件下的Budget列求和?

解决DAX多条件求和筛选问题

你用IN结合CONTAINSSTRING失效的原因是:IN是用来判断值是否属于某个集合,而CONTAINSSTRING返回的是布尔值,两者无法直接组合生效。下面给你两个简洁可行的实现方案:

方案一:直接用OR连接多条件(适合关键词数量少的场景)

Sum_Budget = 
CALCULATE(
    SUM(Financial_Tab[Budget]),
    -- 筛选CBS Code包含"1.2.4"的行
    CONTAINSSTRING(Financial_Tab[CBS Code], "1.2.4"),
    -- 筛选CBS Name包含任意目标关键词的行
    OR(
        CONTAINSSTRING(Financial_Tab[CBS Name], "NOP1"),
        CONTAINSSTRING(Financial_Tab[CBS Name], "NOP2"),
        CONTAINSSTRING(Financial_Tab[CBS Name], "NOP3")
    )
)

方案二:用变量存储关键词集合(适合后续需要扩展关键词的场景)

如果之后要加更多关键词,直接修改变量里的集合即可,不用改逻辑:

Sum_Budget = 
VAR TargetKeywords = {"NOP1", "NOP2", "NOP3"}
RETURN
CALCULATE(
    SUM(Financial_Tab[Budget]),
    CONTAINSSTRING(Financial_Tab[CBS Code], "1.2.4"),
    -- 检查当前行的CBS Name是否匹配集合中的任意关键词
    COUNTX(TargetKeywords, IF(CONTAINSSTRING(Financial_Tab[CBS Name], [Value]), 1, 0)) > 0
)

这两个方案都能正确返回预期的£50结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:50:37