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

Google Sheets数据整理:用单公式将原始数组转为指定格式表格

用单个公式整理Google Sheets数据为目标格式

可以使用以下数组公式实现需求,直接输入到目标区域的左上角单元格(如E2)即可自动溢出所有结果:

=MAP(UNIQUE(A2:A), LAMBDA(name, 
  LET(
    player_rows, FILTER(B2:C, A2:A=name),
    all_teams, FLATTEN(player_rows),
    unique_ordered_teams, REDUCE("", all_teams, LAMBDA(acc, val, 
      IF(OR(val="", ISNUMBER(XMATCH(val, acc))), acc, VSTACK(acc, val))
    )),
    HSTACK(name, TOROW(unique_ordered_teams))
  )
))

公式逻辑拆解:

  • 提取唯一球员:UNIQUE(A2:A) 获取A列所有不重复的球员姓名,作为后续处理的基础列表。
  • 遍历处理每个球员:MAP(..., LAMBDA(name, ...)) 逐个对每个唯一姓名执行数据整理逻辑。
  • 获取对应球队数据:FILTER(B2:C, A2:A=name) 筛选出当前球员所有行的B、C列球队数据。
  • 按原始顺序展开球队:FLATTEN(player_rows) 将每一行的B、C列按原始行顺序展开为垂直数组,确保球队的顺序与原始列表中出现的先后一致(先同一行的B列,再C列,依次处理后续行)。
  • 去重并保留顺序:REDUCE(...) 遍历展开后的球队列表,仅保留首次出现的非空球队,自动跳过重复值,满足"优先保留排序靠前的球队"要求。
  • 组合结果行:HSTACK(name, TOROW(unique_ordered_teams)) 将球员姓名与去重后的横向球队列表合并为一行,形成目标格式。

满足的需求点:

  1. 基于A列生成唯一球员列表:通过UNIQUE(A2:A)实现。
  2. 提取B、C列的唯一球队并保留原始顺序:通过FLATTEN+REDUCE的组合,确保只保留首次出现的球队,且顺序与原始数据中出现的先后一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:00:56