求Excel条件加权求和公式:根据B列取值计算A5:A59的加权总和
实现Excel加权求和的解决方案
别担心,这个需求用Excel的SUMPRODUCT函数就能轻松搞定,它专门适配这种多区域乘积求和的场景,而且不需要手动触发数组公式,直接回车就能生效。
核心公式
直接在C4单元格输入下面的公式即可:
=SUMPRODUCT(A5:A59, IF(B5:B59="x", 1, IF(B5:B59=0.8, 0.8, 0)))
公式逻辑拆解
咱们一步步看它怎么工作:
- 第一部分
A5:A59是你需要计算的目标数值区域; - 第二部分嵌套的
IF函数负责把B列的对应值转换成权重:- 当B列单元格值为
x时,返回权重1(100%); - 当B列单元格值为
0.8时,返回权重0.8(80%); - 遇到其他值时返回0,意味着这部分数值不会被计入求和结果(如果后续需要新增权重规则,直接在这里添加
IF分支就行);
- 当B列单元格值为
SUMPRODUCT会自动把两个区域对应位置的数值相乘,再把所有乘积加总,正好就是你要的加权求和结果。
验证你的测试示例
用你给出的测试数据代入公式:
A5=20、B5=x → 20×1
A6=30、B6=x → 30×1
A7=50、B7=0.8 →50×0.8
计算总和就是20+30+40=90,完全符合预期结果。
更简洁的替代写法
如果你觉得嵌套IF有点繁琐,也可以用布尔运算简化公式:
=SUMPRODUCT(A5:A59, (B5:B59="x")*1 + (B5:B59=0.8)*0.8)
这里的布尔表达式(B5:B59="x")会返回TRUE/FALSE,和数字相乘时会自动转换成1/0,逻辑和嵌套IF完全一致,只是写法更紧凑。
内容的提问来源于stack exchange,提问作者Ron Marks
相关产品推荐
相关产品推荐

