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

Google Sheets:如何实现姓名去重并转置对应作业数据?

解决Google Sheets中姓名对应多列作业的自动转置问题

可行的数组公式方案

假设姓名列是A2:A,作业列是B2:B,直接在空白单元格输入以下公式即可实现自动提取唯一姓名,并将对应作业转置到同一行的多列中,新增数据会自动更新:

=LET(
  unique_names, UNIQUE(FILTER(A2:A, A2:A<>"")),
  BYROW(unique_names, LAMBDA(name, HSTACK(name, TRANSPOSE(FILTER(B2:B, A2:A=name)))))
)

公式说明

  • UNIQUE(FILTER(A2:A, A2:A<>"")):提取A列中非空的唯一姓名列表,过滤掉空行避免干扰。
  • BYROW(unique_names, LAMBDA(name, ...)):遍历每个唯一姓名,对单个姓名执行后续转置操作。
  • HSTACK(name, TRANSPOSE(FILTER(B2:B, A2:A=name))):将当前姓名和其对应的所有作业(转置为横向列)合并成一行,自动扩展到所需列数。

原公式无效的原因

你之前使用的=ARRAYFORMULA(TRANSPOSE(FILTER($B$2:$B, $A$2:$A=A2)))存在两个核心问题:

  1. 公式依赖当前行的A2作为匹配条件,会重复生成相同姓名的行,无法自动提取唯一姓名集合。
  2. FILTER在ARRAYFORMULA中无法自动遍历所有唯一姓名,必须手动下拉才能覆盖新增数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:22:37