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

如何在Google Sheets中遍历区域,简化重复累加公式?

Google Sheets 简化遍历求和公式方案

直接用SUMPRODUCT就能实现批量遍历计算,不用重复写一堆IF语句,公式如下:

=SUMPRODUCT(
  --NOT(ISBLANK($B$2:$B$39)),
  OFFSET(Vitamins_data_start_offset, MATCH($E5, Vitamins_list, 0), MATCH($B$2:$B$39, Products_list, 0)),
  $C$2:$C$39/Product_weight
)

公式说明:

  • --NOT(ISBLANK($B$2:$B$39)):把B列非空单元格转为1,空单元格转为0,实现空值过滤(对应原公式里IF(ISBLANK(X),0,...)的作用)
  • OFFSET(...):MATCH($B$2:$B$39, Products_list,0)会返回一个数组,对应每个B单元格在产品列表中的位置,OFFSET自动生成对应的数据值数组
  • $C$2:$C$39/Product_weight:直接取B列对应的C列数值,统一除以产品重量生成数值数组
  • SUMPRODUCT会自动将三个数组对应位置相乘后求和,完全替代原公式中一堆IF相加的逻辑

关于SUM+ARRAYFORMULA的可行写法:

如果你偏好这种组合,也可以用以下公式,和你想要的SUM_ALL逻辑完全一致:

=SUM(ARRAYFORMULA(
  IF(ISBLANK($B$2:$B$39),0,
    OFFSET(Vitamins_data_start_offset, MATCH($E5, Vitamins_list,0), MATCH($B$2:$B$39, Products_list,0))*$C$2:$C$39/Product_weight
  )
))

之前没生效大概率是因为Vitamins_list或Products_list的区域引用有误,导致MATCH无法正常返回数组结果,核对一下引用范围即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:45:11