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

DAX中如何通过条件过滤器返回特定颜色或全部颜色值?

问题解答

关于"%%"的作用

DAX里的"%%"没有特殊通配符作用——因为DAX的=是精确匹配逻辑,tab[color] = "%%"只会筛选出Color字段**完全等于"%%"**的行,你提供的示例数据里不存在这个值,所以这种写法根本达不到「解除筛选返回所有行」的目的。

实现条件筛选的正确方法

要做到「满足条件时只取red,否则返回所有颜色」,有两种实用写法:

写法1:利用CALCULATE的条件逻辑

通过判断筛选值是否为空,动态切换筛选规则:

VAR MyFilter = IF(condition, "red", BLANK())
CALCULATE (
    [Sales],
    // 有筛选值时精确匹配,无筛选值时所有行都符合条件
    IF(NOT(ISBLANK(MyFilter)), tab[Color] = MyFilter, TRUE())
)

写法2:用REMOVEFILTERS函数(更直白)

直接在不需要筛选的时候移除Color字段的筛选器,逻辑一目了然:

CALCULATE (
    [Sales],
    IF(condition, tab[Color] = "red", REMOVEFILTERS(tab[Color]))
)

测试验证(结合你的示例数据)

当condition为TRUE时,两种写法都会返回1(仅red的销售额);当condition为FALSE时,都会返回3(所有颜色销售额的总和),完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:07:07