如何在Google Sheets中按匹配姓名将多行合并为一行?
解决方案:Google Sheets原生公式合并同姓名条目到单行
假设原始数据位于A1:D7(表头Name/Group/Purchase/Quantity在第1行),以下是实现目标的分步操作:
1. 提取唯一姓名及对应Group
在结果区域的第2行开始:
- 提取唯一姓名(结果A2单元格):
=UNIQUE(A2:A7) - 匹配对应Group(结果B2单元格):
下拉公式到所有唯一姓名行,自动匹配每个姓名对应的Group。=XLOOKUP(A2,$A$2:$A$7,$B$2:$B$7,"")
2. 拆分Purchase和Quantity到多列
针对每个姓名的第N条记录,使用数组公式提取对应值(需按Ctrl+Shift+Enter触发数组计算,部分新版Google Sheets可直接回车):
第1组Purchase/Quantity(结果C2/D2)
- Purchase 1:
=IFERROR(INDEX($C$2:$C$7,SMALL(IF($A$2:$A$7=$A2,ROW($A$2:$A$7)-ROW($A$2)+1),1)),"") - Quantity 1:
=IFERROR(INDEX($D$2:$D$7,SMALL(IF($A$2:$A$7=$A2,ROW($A$2:$A$7)-ROW($A$2)+1),1)),"")
第2组Purchase/Quantity(结果E2/F2)
将公式中的1替换为2:
- Purchase 2:
=IFERROR(INDEX($C$2:$C$7,SMALL(IF($A$2:$A$7=$A2,ROW($A$2:$A$7)-ROW($A$2)+1),2)),"") - Quantity 2:
=IFERROR(INDEX($D$2:$D$7,SMALL(IF($A$2:$A$7=$A2,ROW($A$2:$A$7)-ROW($A$2)+1),2)),"")
第3组及更多
重复上述逻辑,将SMALL函数的第3个参数依次改为3、4...,直到覆盖原始数据中同一姓名的最大条目数(本例中John Matthews有3条,所以做3组即可)。
3. 批量应用公式
将所有公式下拉到结果区域的所有行,即可自动填充所有姓名对应的拆分数据,空值会显示为空白而非错误提示。
内容的提问来源于stack exchange,提问作者DJ Luke
相关产品推荐
相关产品推荐

