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

Google Sheets Double Lookup 无辅助列跨表查询实现求助

无辅助列实现方案(Google Sheets 环境)

直接在对阵得分表的首个结果单元格(对应A队得分的第一行空白单元格)输入以下公式即可自动溢出整表结果,无需逐行填充,也不需要额外辅助列:

=BYROW(A2:C, LAMBDA(row,
  IF(COUNTA(row) = 0, "",
    LET(
      cur_week, INDEX(row, 1),
      team_a, INDEX(row, 2),
      team_b, INDEX(row, 3),
      week_score, FILTER(HSTACK(得分表!B1:1, OFFSET(得分表!B:B, MATCH(cur_week, 得分表!A:A, 0)-1, 0, 1, COLUMNS(得分表!B1:1))), ISNA(得分表!B1:1)=FALSE),
      HSTACK(XLOOKUP(team_a, INDEX(week_score, 0, 1), INDEX(week_score, 0, 2), ""), XLOOKUP(team_b, INDEX(week_score, 0, 1), INDEX(week_score, 0, 2), ""))
    )
  )
))

公式说明:

  • 用BYROW遍历对阵表的每一行数据,自动跳过空行
  • LET提前定义中间变量,避免重复计算相同逻辑,提升公式可读性和运行效率
  • 先通过周次匹配到得分表中对应周的所有队伍得分,生成「队伍名-得分」的临时映射数组
  • 分别匹配A队、B队的得分后用HSTACK拼接成两列结果,直接溢出填充整表

如果仅需要适配旧版本函数,也可以用嵌套VLOOKUP的写法实现:

=ARRAYFORMULA(IF(A2:A="",,
  {
    VLOOKUP(B2:B&"|"&A2:A, {得分表!B:B&"|"&OFFSET(得分表!A:A,0,0,ROWS(得分表!A:A)), 得分表!C:C}, 2, 0),
    VLOOKUP(C2:C&"|"&A2:A, {得分表!B:B&"|"&OFFSET(得分表!A:A,0,0,ROWS(得分表!A:A)), 得分表!C:C}, 2, 0)
  }
))

该写法直接在数组内拼接队伍名和周次作为匹配键,不需要在工作表中新增物理辅助列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:00:01