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

DAX如何实现列求和并排除对应列含指定文本片段的行?

DAX 排除含指定前缀内容的求和实现方案

原公式问题说明

  • 仅匹配完整关键词Payment,无法命中Pay、Paym等短前缀内容
  • 未添加NOT取反筛选逻辑,实际生效的是「仅统计包含Payment的行」,和需求完全相反

正确实现方案

DAX 支持类NOT LIKE %Pay%的匹配逻辑,常用两种实现方式:

方案1:NOT + CONTAINSSTRING(最直观写法)

CONTAINSSTRING是DAX原生用于判断文本是否包含指定子串的函数,默认大小写不敏感,配合NOT取反即可实现排除逻辑:

Total Dollars = 
CALCULATE(
    SUM('Union'[Dollars]),
    FILTER(
        'Union',
        NOT CONTAINSSTRING('Union'[Description], "Pay")
    )
)

如果需要严格区分大小写,可替换为CONTAINSSTRINGEXACT函数。

方案2:SEARCH函数(兼容旧版DAX写法)

如果使用的DAX版本不支持CONTAINSSTRING,也可以用SEARCH函数实现,匹配不到内容时会返回错误,配合ISERROR即可实现排除:

Total Dollars = 
CALCULATE(
    SUM('Union'[Dollars]),
    FILTER(
        'Union',
        ISERROR(SEARCH("Pay", 'Union'[Description], 1, -1))
    )
)

两种方案都可实现所有包含Pay连续字符的行被排除出求和统计的需求,完全匹配你的业务规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:24:01