如何按相同键合并表格列数据?尝试FILTER等函数未成功
按键合并表格列数据的实现方法
这个需求完全可以实现,以下是具体的公式实现方案,适用于Excel(365/2021版本)和Google Sheets:
分步实现(手动下拉公式)
提取唯一键值:在新表格的
Name1列输入公式,提取tb表中不重复的Name1值:- Excel:
=UNIQUE(tb[Name1])(结构化引用,需确保tb是已定义的表格) - Google Sheets:
=UNIQUE(tb!A:A)
- Excel:
合并对应列数据:在新表格的
Name2列,对应每个唯一键值输入公式,合并匹配的Name2内容:- Excel(结构化引用):
=TEXTJOIN(",", TRUE, FILTER(tb[Name2], tb[Name1]=[@Name1])) - Excel(普通区域引用,假设
tb的Name1在A2:A5,Name2在B2:B5):=TEXTJOIN(",", TRUE, FILTER($B$2:$B$5, $A$2:$A$5=D2))(D2为唯一键值所在单元格) - Google Sheets:
=TEXTJOIN(",", TRUE, FILTER(tb!B:B, tb!A:A=D2))
- Excel(结构化引用):
数组公式一次性生成结果(无需下拉)
如果想直接一键生成完整结果,可使用数组公式:
- Excel:
=HSTACK(UNIQUE(tb[Name1]), BYROW(UNIQUE(tb[Name1]), LAMBDA(x, TEXTJOIN(",", TRUE, FILTER(tb[Name2], tb[Name1]=x))))) - Google Sheets:
=ARRAYFORMULA(IFERROR(VLOOKUP(UNIQUE(tb!A:A), QUERY(tb!A:B, "SELECT A, TEXTJOIN(',', TRUE, B) GROUP BY A"), 2, FALSE)))
常见问题排查
你之前尝试组合函数未成功,可能的原因包括:
- 未锁定引用范围(比如FILTER中的列范围没加
$导致下拉时范围偏移) - TEXTJOIN的分隔符参数设置错误(比如误用中文逗号或空格)
- 结构化引用与普通区域引用混用导致匹配逻辑出错
内容的提问来源于stack exchange,提问作者Vito G.
相关产品推荐
相关产品推荐

