Excel技巧:如何对上方单元格为指定文本的同列单元格求和
不用VBA实现指定名字下方数字求和的方案
当然可以不用VBA搞定这个需求!我给你两个实用的Excel公式方案,直接就能用:
方案1:用SUMPRODUCT函数(兼容所有Excel版本)
这个方法不管你用的是旧版还是新版Excel都能正常工作,不需要特殊操作:
- 计算Alex的总和:
=SUMPRODUCT((B1:B9="Alex")*(B2:B10)) - 计算Bart的总和:
=SUMPRODUCT((B1:B9="Bart")*(B2:B10))
原理说明
(B1:B9="Alex") 会生成一个由TRUE/FALSE组成的数组,标记出B列中所有等于"Alex"的单元格位置;B2:B10 是这些单元格正下方的数字区域。两者相乘时,TRUE会自动转换为1,FALSE转换为0,这样就只会保留对应名字下方的数字,最后SUMPRODUCT会把这些有效数字加总起来。
方案2:用FILTER+SUM函数(适用于Excel 365/2021及以上版本)
如果你的Excel支持动态数组功能,这个方案会更直观易懂:
- 计算Alex的总和:
=SUM(FILTER(B2:B10,B1:B9="Alex")) - 计算Bart的总和:
=SUM(FILTER(B2:B10,B1:B9="Bart"))
原理说明
FILTER函数会根据B1:B9="Alex"的条件,从B2:B10里筛选出所有对应Alex下方的数字,再用SUM直接对筛选结果求和,逻辑非常清晰。
注意:公式里的单元格范围要根据你实际的数据调整,示例中B列数据是B1到B10,所以名字区域是B1:B9,对应下方数字区域是B2:B10。
内容的提问来源于stack exchange,提问作者Ugo
相关产品推荐
相关产品推荐

