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

DAX计算:筛选region列含"th"的记录总销售额

DAX公式修正方案

问题分析

你需要筛选出region列包含"th"的记录,计算sales amount总和。原公式未得到正确结果,核心原因是筛选器的上下文逻辑错误:直接在CALCULATE的筛选参数中使用行上下文的SEARCH表达式,无法正确生成全局的筛选上下文。

正确公式

方案1:兼容所有DAX版本(FILTER+SEARCH)

CALCULATE(
    SUM(t[sales amount]),
    FILTER(
        ALL(t[region]),
        SEARCH("th", t[region], , 0) > 0
    )
)
  • FILTER(ALL(t[region]), ...):遍历所有不重复的region值,筛选出包含"th"的项
  • SEARCH("th", t[region], , 0):找不到"th"时返回0,>0表示匹配成功

方案2:DAX 2019及以上版本推荐(CONTAINSSTRING)

CALCULATE(
    SUM(t[sales amount]),
    CONTAINSSTRING(t[region], "th")
)
  • CONTAINSSTRING是DAX专门用于判断字符串包含关系的函数,写法更简洁,默认不区分大小写
  • 若需要区分大小写,改用CONTAINSSTRINGEXACT

验证结果

根据你提供的数据,符合条件的region是North和South,总和为:
(100+150+200)+(50+75+100) = 675,使用上述公式可得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:22:13