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

Google Sheets模块加权成绩求和公式问题求助

Google Sheets 按模块加权成绩求和解决方案

你的核心问题是原公式无法准确定位下一个模块的起始位置,导致求和范围错误延伸到表格底部。以下是两种可行的解决方案:

方法1:BYROW+INDIRECT组合公式

将以下公式输入到F2单元格,会自动为每个模块计算对应E列的加权成绩总和:

=BYROW(A2:A, LAMBDA(row_val,
  IF(row_val="", "",
    SUM(
      INDIRECT("E"&ROW(row_val)&":E"&IFERROR(MATCH(TRUE,OFFSET(A2:A,ROW(row_val)-ROW(A2)+1,0)<>"",0)+ROW(row_val)-1,ROWS(E:E)))
    )
  )
))

公式逻辑说明:

  • BYROW(A2:A, LAMBDA(row_val, ...)):遍历A列每一行,逐个处理模块行
  • IF(row_val="", "", ...):仅对A列非空的模块行计算求和,空行返回空值
  • INDIRECT("E"&ROW(row_val)&":E"&...):构造当前模块的E列求和范围
    • MATCH(TRUE,OFFSET(A2:A,ROW(row_val)-ROW(A2)+1,0)<>"",0):定位当前模块行之后第一个非空的A列单元格(下一个模块的起始行)
    • IFERROR(...,ROWS(E:E)):处理最后一个模块的边界情况,若无后续模块则求和到表格最后一行

方法2:ARRAYFORMULA简化版

若偏好数组公式写法,可使用以下公式:

=ARRAYFORMULA(
  IF(
    A2:A="", "",
    SUMIF(
      ROW(E:E),
      ">="&ROW(A2:A),
      IF(ROW(E:E)<IFERROR(MATCH(TRUE,A3:A<>"",0)+ROW(A2:A)-1,ROWS(E:E)),E:E,0)
    )
  )
)

原公式问题分析:

你之前的公式中,MATCH(TRUE,ISBLANK(A3:A),0)是查找第一个空白行,而非下一个模块的起始行,这会导致求和范围错误包含后续模块的成绩,甚至延伸到表格底部。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:13:12