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

如何在Google Sheets中按客户列将多行数据合并为单行

Google Sheets 实现客户对应Owner/Helper多行转单行

分步实现方案

1. 获取唯一客户列表

在空白列(比如E列)的E1单元格输入:

=UNIQUE(A:A)

注:假设原数据中Cust列是A列,Name是B列,Role是C列,根据实际列调整

2. 生成动态表头

在F1单元格输入以下公式,自动生成Owner1、Owner2...和Helper1、Helper2...的表头:

=ARRAYFORMULA({"Owner"&SEQUENCE(MAX(COUNTIFS(A:A,UNIQUE(A:A),C:C,"Owner"))),"Helper"&SEQUENCE(MAX(COUNTIFS(A:A,UNIQUE(A:A),C:C,"Helper")))})

该公式会自动统计所有客户中最多的Owner和Helper数量,生成对应数量的表头列。

3. 填充Owner信息

在F2单元格输入公式,下拉填充所有客户对应的Owner:

=ARRAYFORMULA(IFERROR(INDEX(B:B,SMALL(IF((A:A=E2)*(C:C="Owner"),ROW(B:B)),SEQUENCE(MAX(COUNTIFS(A:A,UNIQUE(A:A),C:C,"Owner"))))),"")

公式会提取当前客户的所有Owner,按顺序填充到对应列,无匹配内容时显示空值。

4. 填充Helper信息

在Helper起始列(F列之后的对应列)的第二行输入:

=ARRAYFORMULA(IFERROR(INDEX(B:B,SMALL(IF((A:A=E2)*(C:C="Helper"),ROW(B:B)),SEQUENCE(MAX(COUNTIFS(A:A,UNIQUE(A:A),C:C,"Helper"))))),"")

下拉填充即可完成所有客户的Helper信息匹配。

自动化一次性生成方案

如果不想分步操作,可使用LET函数一次性生成完整结果,在空白单元格(比如E1)输入:

=LET(
  custs, UNIQUE(A:A),
  max_owners, MAX(COUNTIFS(A:A,custs,C:C,"Owner")),
  max_helpers, MAX(COUNTIFS(A:A,custs,C:C,"Helper")),
  headers, HSTACK("Cust", ARRAYFORMULA("Owner"&SEQUENCE(max_owners)), ARRAYFORMULA("Helper"&SEQUENCE(max_helpers))),
  data, MAP(custs, LAMBDA(c, 
    HSTACK(
      c,
      ARRAYFORMULA(IFERROR(INDEX(B:B,SMALL(IF((A:A=c)*(C:C="Owner"),ROW(B:B)),SEQUENCE(max_owners))),"")),
      ARRAYFORMULA(IFERROR(INDEX(B:B,SMALL(IF((A:A=c)*(C:C="Helper"),ROW(B:B)),SEQUENCE(max_helpers))),"")
    )
  )),
  VSTACK(headers, data)
)

该公式会自动完成:提取唯一客户列表、生成对应数量的Owner/Helper表头、为每个客户匹配所有Owner和Helper并填充到对应列。

注意事项

  • 确保原数据Role列的取值严格为Owner和Helper(大小写一致),若有拼写差异,需调整公式中的对应文本。
  • 若姓名包含特殊字符,使用TEXTSPLIT+TEXTJOIN替代方案时,需更换不会出现在姓名里的分隔符(比如~)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:35:04