You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中按条件计算非零加权平均值?

解决Google Sheets中非零值的加权平均值计算问题

嘿,刚好碰到过类似的需求,完全可以用公式轻松实现,而且绝对不会动到你的原始数据。直接看解决方案:

核心公式

在任意空白单元格输入这个公式就行:

=SUMPRODUCT(A2:A7*(A2:A7<>0), B2:B7)/SUMIF(A2:A7, "<>0", B2:B7)

公式拆解说明

咱们一步步看这个公式为啥能满足你的要求:

  • 分子部分:SUMPRODUCT(A2:A7*(A2:A7<>0), B2:B7)

    • A2:A7<>0会生成一个布尔数组,Products列不为0的位置是TRUE(相当于1),为0的位置是FALSE(相当于0)
    • 用这个布尔数组和Products列相乘,就把Products=0的行数值变成了0,剩下的保留原始值
    • 最后SUMPRODUCT把处理后的Products列和Orders列对应相乘后求和,正好得到你想要的5*1200 + 14*1234 + ... +21*13234这个总和
  • 分母部分:SUMIF(A2:A7, "<>0", B2:B7)

    • 这个函数的作用很直接:只对Products列不为0的行,求和对应的Orders列数值,也就是1200 + 1234 + ... +13234的权重总和

把分子除以分母,就得到了你期望的非零加权平均值。

扩展小提示

如果后续你的数据集会添加新行,不想每次调整公式范围,可以把范围改成动态的(注意避开表头),比如:

=SUMPRODUCT(A2:A*(A2:A<>0), B2:B)/SUMIF(A2:A, "<>0", B2:B)

这样公式会自动计算A列和B列从第二行开始的所有有效数据。

内容的提问来源于stack exchange,提问作者mark0018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:32:56