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

Split & Transpose 挑战:Gform录入许可类表格转置实现咨询

Google Sheets多行展开实现方案

前提说明

原始数据结构共5列:A列许可证编号、B列人员姓名(多人员默认用逗号+空格分隔)、C列地点、D列有效期开始日期、E列有效期结束日期。最终要实现多人员拆分后每行对应1名人员,其他同许可证信息同步复用。

方案1:动态数组公式(推荐,自动同步原始数据更新)

假设原始数据存放在名为原始数据的工作表中,数据从第2行开始(第1行为表头),你可以在新工作表的A2单元格直接输入以下公式,会自动扩展生成所有符合要求的结果:

=ARRAYFORMULA(
  LET(
    // 筛选出有许可证编号的有效原始数据
    raw, FILTER('原始数据'!A2:E, '原始数据'!A2:A <> ""),
    // 提取各列原始数据
    permit, INDEX(raw,,1),
    names, INDEX(raw,,2),
    loc, INDEX(raw,,3),
    start_date, INDEX(raw,,4),
    end_date, INDEX(raw,,5),
    // 拆分同单元格的多人员姓名为横向多列
    split_names, SPLIT(names, ", "),
    // 计算每行拆分出的人员数量
    count_per_row, BYROW(split_names, LAMBDA(x, COUNTA(x))),
    max_count, MAX(count_per_row),
    // 把各列数据按人员数量重复后纵向展开
    HSTACK(
      TOCOL(IF(SEQUENCE(1, max_count) <= count_per_row, permit, NA()), 2),
      TOCOL(split_names, 2),
      TOCOL(IF(SEQUENCE(1, max_count) <= count_per_row, loc, NA()), 2),
      TOCOL(IF(SEQUENCE(1, max_count) <= count_per_row, start_date, NA()), 2),
      TOCOL(IF(SEQUENCE(1, max_count) <= count_per_row, end_date, NA()), 2)
    )
  )
)

自定义调整说明

  • 若人员姓名的分隔符不是逗号+空格,修改SPLIT(names, ", ")中的分隔符即可,比如纯逗号就改为SPLIT(names, ",")
  • 若原始工作表名称不是原始数据,把公式中所有'原始数据'替换为你的实际工作表名称即可

方案2:手动操作(适配临时单次处理需求)

如果不需要和原始数据联动,可通过手动操作快速完成:

  • 选中原始数据的人员姓名列,点击顶部菜单栏「数据」-「将文本拆分为列」,分隔符选择对应符号,把多人员拆分为横向多列
  • 选中所有数据区域,使用「数据透视表」或Power Tools插件的「行转列展开」功能,把拆分后的多列姓名纵向展开,其他列关联复用即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:45:00