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
相关产品推荐
相关产品推荐

