如何用SUMIFS函数逐行对比B、C列并求和A列符合条件的值?
解决Excel逐行匹配B=C时A列求和的问题
我懂你遇到的痛点了——用SUMIFS(A:A,B:B,"="&C2)只能揪出B列等于C2的行,没法实现逐行对应判断B列和C列是否相等,而且你不想用辅助列绕弯子,这事儿用SUMPRODUCT或者动态数组版的SUM就能直接搞定。
方法1:SUMPRODUCT(兼容所有Excel版本)
直接套用这个公式就行:
=SUMPRODUCT(--(B:B=C:C), A:A)
公式拆解:
B:B=C:C:逐行对比B列和C列的单元格,生成一个由TRUE(相等)和FALSE(不等)组成的隐形数组。--(...):把布尔值TRUE/FALSE转换成数值1/0——只有转成数字才能参与后续的乘法运算,相当于给符合条件的行打个"1分"标记。SUMPRODUCT会把两个数组对应位置的元素相乘(相等行的A值×1,不等行×0),最后把所有结果加起来,自然就只保留了B=C的那些行的A列数值总和。
方法2:SUM+数组公式(适用于Excel 365/2021及以后版本)
如果你用的是支持动态数组的新版Excel,也可以用这个更简洁的写法:
=SUM(IF(B:B=C:C, A:A, 0))
旧版Excel需要按Ctrl+Shift+Enter作为数组公式输入,新版直接回车就能生效。
为啥你的SUMIFS不好使?
SUMIFS的逻辑是在整个B列里找等于C2的单元格,然后对对应的A列求和——它的条件是针对整个区域的单个匹配值,没法实现逐行的Bn=Cn对应判断,这才会出现只能匹配C2的问题。
举个实际例子,假设你的数据是:
| A | B | C |
|---|---|---|
| 1 | 5 | 5 |
| 2 | 3 | 4 |
| 3 | 2 | 2 |
| 4 | 6 | 7 |
用上面的公式计算,结果会是1+3=4,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Hias
相关产品推荐
相关产品推荐

