无需VLOOKUP且不新增列:Excel单单元格跨列匹配求和
解决单个单元格计算符合条件的C列总和问题
嘿,我完全懂你的限制——不能加新列、不能下拉公式,就得在一个单元格里搞定对吧?刚好有两个靠谱的数组/数组兼容公式能满足你的需求,我给你拆解清楚:
方法1:数组公式(适配Excel旧版本)
直接在目标单元格输入这个公式,然后按 Ctrl+Shift+Enter 完成输入(新版Excel可直接回车,旧版必须按组合键触发数组计算):
=SUM(IF(COUNTIF(A:A,B:B)>0,C:C,0))
公式拆解:
COUNTIF(A:A,B:B):逐个检查B列的每个值,判断它在A列中是否存在。存在则返回1(或出现次数),不存在返回0。IF(...,C:C,0):如果B列当前值在A列存在,就保留对应的C列数值;否则替换成0,避免干扰求和结果。SUM(...):把所有符合条件的C列数值累加,得到最终总和。
用你的示例数据测试的话,结果会是100+400+500=1000,完全符合预期。
方法2:SUMPRODUCT公式(无需数组快捷键,更省心)
如果你嫌按组合键麻烦,SUMPRODUCT天生支持数组运算,直接输入回车就能用:
=SUMPRODUCT(--(COUNTIF(A:A,B:B)>0),C:C)
公式拆解:
--(COUNTIF(A:A,B:B)>0):先判断B列值是否在A列存在(得到TRUE/FALSE的布尔结果),用--把布尔值转换成1和0(TRUE→1,FALSE→0)。SUMPRODUCT(...):把转换后的1/0数组和C列数组对应相乘,再将所有乘积相加——本质就是只累加那些B列值在A列存在的C列数值,和方法1效果完全一致。
这两个方法都不需要新增列,也不用下拉公式,单个单元格就能搞定,完美匹配你的需求!
内容的提问来源于stack exchange,提问作者user2029890
相关产品推荐
相关产品推荐

