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

求助:Google Sheets中动态拆分姓名及对应数据至多列的方法

动态拆分Google Sheets中姓名与备注至多列

我在Google Sheets中有一组含「姓名」和「备注」列的数据,姓名数量会随数据增减动态变化,希望将每个姓名对应的所有备注数据拆分到独立的多列中(每列组包含姓名+备注)。之前尝试用FILTER函数,但需要预先指定姓名,无法实现动态适配,求可行方案。

原始数据

姓名备注
Joshanything1
Mikeanything2
Peteranything3
Nicoleanything4
Joshanything5
Mikeanything6
Peteranything7
Nicoleanything8
Joshanything9
Mikeanything10
Peteranything11
Nicoleanything12
Joshanything13
Mikeanything14
Peteranything15
Nicoleanything16
Joshanything17
Mikeanything18
Peteranything19
Nicoleanything20
Joshanything21
Mikeanything22
Peteranything23
Nicoleanything24
Joshanything25
Mikeanything26
Peteranything27
Nicoleanything28
Peteranything29
Nicoleanything30
Peteranything31
Nicoleanything32
Peteranything33
Nicoleanything34
Peteranything35
Nicoleanything36

期望结果

姓名备注姓名备注姓名备注姓名备注
Joshanything1Mikeanything2Peteranything3Nicoleanything4
Joshanything5Mikeanything6Peteranything7Nicoleanything8
Joshanything9Mikeanything10Peteranything11Nicoleanything12
Joshanything13Mikeanything14Peteranything15Nicoleanything16
Joshanything17Mikeanything18Peteranything19Nicoleanything20
Joshanything21Mikeanything22Peteranything23Nicoleanything24
Joshanything25Mikeanything26Peteranything27Nicoleanything28
Peteranything29Nicoleanything30
Peteranything31Nicoleanything32
Peteranything33Nicoleanything34
Peteranything35Nicoleanything36

动态解决方案

可以通过组合UNIQUE、INDEX、SEQUENCE和IFERROR等函数实现完全动态的效果,无需预先指定姓名:

一步到位数组公式

在目标区域的起始单元格(比如F1)输入以下公式(新版Google Sheets直接回车即可,旧版需按Ctrl+Shift+Enter):

=LET(
  unique_names, UNIQUE(A:A),
  name_count, COUNTA(unique_names),
  max_rows, MAX(COUNTIF(A:A, unique_names)),
  header, FLATTEN(REPT({"姓名", "备注"}, name_count)),
  data, REDUCE("", SEQUENCE(name_count), LAMBDA(acc, n, 
    LET(
      current_name, INDEX(unique_names, n),
      filtered, FILTER(A:B, A:A=current_name),
      padded, IFERROR(VSTACK(filtered, SEQUENCE(max_rows-ROWS(filtered),2,"")), filtered),
      HSTACK(acc, padded)
    )
  )),
  VSTACK(header, data)
)

公式说明

  • UNIQUE(A:A):自动提取所有不重复的姓名,随数据更新同步变化
  • MAX(COUNTIF(A:A, unique_names)):计算所有姓名中最多的记录行数,用于补全短数据的空白行
  • FLATTEN(REPT({"姓名", "备注"}, name_count)):动态生成重复的「姓名/备注」表头组
  • REDUCE+LAMBDA:循环处理每个唯一姓名,筛选对应数据后补全空白行,再横向拼接成目标格式
  • VSTACK(header, data):将表头和处理好的数据纵向组合,形成最终结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:44:49