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

Google Sheets跨表获取指定F2值对应B49值及求和需求

解决方案

1. 获取F2=1时B49的值

假设选手原始数据存储在RawData工作表中(A列为学校编号,B-E列对应「SchoolWiseList」表的B-E选手信息),可在「ContactPerson」工作表中使用以下公式计算目标值:

=LET(
  target_school, 1,
  // 筛选目标学校的选手数据
  school_data, FILTER(RawData!B:E, RawData!A=target_school),
  // 模拟「SchoolWiseList」表A列的编号生成逻辑
  generate_ids, LAMBDA(data,
    SCAN("", SEQUENCE(ROWS(data)), LAMBDA(acc, row,
      LET(
        current_row, INDEX(data, row, ),
        IF(COUNTA(current_row)=0, "",
          IFERROR(
            XLOOKUP(1, (INDEX(data, SEQUENCE(row-1), 1)=INDEX(current_row,1))*(INDEX(data, SEQUENCE(row-1), 3)=INDEX(current_row,3)), acc, , 0),
            IFERROR(MAX(acc), 0)+1
          )
        )
      )
    )
  ),
  // 取编号最大值(对应B49的结果)
  IFERROR(MAX(generate_ids(school_data)), 0)
)

如果「SchoolWiseList」表的B-E列数据来自其他筛选逻辑,请将school_data部分替换为对应的QUERY或FILTER公式。

2. 计算F2从1到11时所有B49值的总和

使用BYROW遍历1-11的学校编号,逐个计算对应B49值后求和:

=SUM(BYROW(SEQUENCE(11), LAMBDA(x,
  LET(
    school_data, FILTER(RawData!B:E, RawData!A=x),
    generate_ids, LAMBDA(data,
      SCAN("", SEQUENCE(ROWS(data)), LAMBDA(acc, row,
        LET(
          current_row, INDEX(data, row, ),
          IF(COUNTA(current_row)=0, "",
            IFERROR(
              XLOOKUP(1, (INDEX(data, SEQUENCE(row-1), 1)=INDEX(current_row,1))*(INDEX(data, SEQUENCE(row-1), 3)=INDEX(current_row,3)), acc, , 0),
              IFERROR(MAX(acc), 0)+1
            )
          )
        )
      )
    ),
    IFERROR(MAX(generate_ids(school_data)), 0)
  )
)))

简化场景说明

若「SchoolWiseList」表A列的公式是生成选手唯一编号(而非按学校+类别分组的编号),可将generate_ids逻辑简化为:

generate_ids, LAMBDA(data,
  SCAN(0, SEQUENCE(ROWS(data)), LAMBDA(acc, row,
    IF(COUNTA(INDEX(data, row, ))>0, acc+1, "")
  ))
)

内容的提问来源于stack exchange,提问作者Kurumba Daspara F P School

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:36:01