如何在VBA中使用带OR逻辑的Sumifs实现多条件求和?
VBA实现「满足任意条件即求和」的公式写法
SUMIFS原生仅支持多条件同时满足的「且逻辑」,要实现任意条件匹配就计入结果的「或逻辑」,常用以下三种方案:
方案1:SUM + 多个SUMIFS拼接(兼容性最好)
直接把每个条件对应的SUMIFS结果相加,适合不需要考虑「同一行同时满足多个条件」的场景,所有Excel版本通用:
Range("A1").Formula = "=SUM(SUMIFS(求和区域, 条件区域1, 条件1), SUMIFS(求和区域, 条件区域2, 条件2))"
你可以根据自己的条件数量,继续在SUM函数里追加更多SUMIFS参数。
方案2:SUMPRODUCT逻辑运算(自动去重统计)
如果需要避免同一行满足多个条件时被重复统计,用SUMPRODUCT搭配逻辑运算实现,同样兼容所有Excel版本:
Range("A1").Formula = "=SUMPRODUCT(求和区域, --((条件区域1=条件1)+(条件区域2=条件2)>0))"
逻辑说明:逻辑运算里加号代表「或」,-- 是把布尔值TRUE/FALSE转为数值1/0,最后和求和区域相乘累加得到结果。
方案3:SUM + FILTER(高版本Excel适用)
如果你用的是Excel 365/2021及以上版本,写法更直观易懂:
Range("A1").Formula = "=SUM(FILTER(求和区域, (条件区域1=条件1)+(条件区域2=条件2), 0))"
注意:公式里的区域引用如果需要固定不随公式拖拽变化,手动给行号列标前加上
$绝对引用符即可。
内容的提问来源于stack exchange,提问作者Kuan
相关产品推荐
相关产品推荐

