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

DAX中使用CALCULATE(SUM)求和时如何添加OR条件?

DAX中CALCULATE函数应用OR条件的实现方法

CALCULATE的多个筛选参数默认是AND关系,要实现OR逻辑需要显式调用逻辑运算符或者OR函数,以下是不同场景的实现方案:

场景1:OR条件作用于同一列

直接用IN运算符匹配多个值即可,示例:

-- 统计地区为华东或华北的总销售额
CALCULATE(SUM('销售表'[销售额]), '销售表'[地区] IN {"华东", "华北"})

场景2:OR条件作用于不同列

这是最常见的使用场景,用||运算符或者OR函数包裹条件即可,不要把两个条件拆成独立的筛选参数(拆开会变成AND逻辑)。
示例:

-- 统计满足「订单金额大于1000」或「订单状态为已完成」的总销售额(满足任意一个条件即可)
-- 写法1:用||运算符
CALCULATE(SUM('订单表'[销售额]), '订单表'[订单金额] > 1000 || '订单表'[订单状态] = "已完成")

-- 写法2:用OR函数
CALCULATE(SUM('订单表'[销售额]), OR('订单表'[订单金额] > 1000, '订单表'[订单状态] = "已完成"))

常见误区

错误写法(实际是AND逻辑,两个条件都满足才会统计):

-- ❌ 错误:两个独立筛选参数默认是AND关系
CALCULATE(SUM('订单表'[销售额]), '订单表'[订单金额] > 1000, '订单表'[订单状态] = "已完成")

如果有复杂的多组逻辑组合,用括号区分逻辑优先级即可:

-- 统计满足「(华东地区且品类是电子产品) 或 单笔销售额大于10000」的总销售额
CALCULATE(SUM('销售表'[销售额]), ('销售表'[地区] = "华东" && '销售表'[品类] = "电子产品") || '销售表'[销售额] > 10000)

用户参考截图:
截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:15:01