Excel多条件求和问题:满足双条件时对C列数值求和
问题解决:Excel多条件求和返回0的修复
示例数据
| Column A | Column B | Column C |
|---|---|---|
| 1/1/2000 | qwe | 2 |
| 2/1/2000 | asd | 3 |
| 3/1/2000 | zxc | 4 |
需求
当A列日期的日数≤2 且 B列文本为"qwe"时,对C列数值求和(注:按当前示例数据,符合条件的仅第一行,正确结果为2;若预期5是因为第二行B列应为"qwe",公式可直接适配)。
原公式错误原因
你使用的SUMIF搭配AND的写法存在两个问题:
AND函数在数组环境中不会返回逐行对应的布尔值数组,只会返回一个整体的TRUE/FALSE,导致SUMIF无法匹配每行的条件组合。SUMIF是单条件求和函数,多条件场景需要用专门的多条件函数或数组求和逻辑。
正确解决方案
方案1:使用SUMIFS(推荐,无需数组输入)
SUMIFS是Excel原生的多条件求和函数,语法为SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2...)。针对需求的公式如下:
=SUMIFS(C1:C3, B1:B3, "qwe", A1:A3, ">="&DATE(YEAR(A1),MONTH(A1),1), A1:A3, "<="&DATE(YEAR(A1),MONTH(A1),2))
也可以用DAY函数简化条件:
=SUMIFS(C1:C3, B1:B3, "qwe", A1:A3, --(DAY(A1:A3)<=2))
方案2:数组求和公式
用乘法代替AND实现逐行逻辑判断(TRUE等价于1,FALSE等价于0,符合条件的行乘积为C列值,否则为0):
=SUM((DAY(A1:A3)<=2)*(B1:B3="qwe")*C1:C3)
注意:旧版Excel需要按Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可生效。
内容的提问来源于stack exchange,提问作者Juan Zepeda
相关产品推荐
相关产品推荐

