如何基于唯一ID匹配不同工作表单元格并完成内容拼接?
单元格匹配拼接实现方案
以下提供Excel不同版本的通用实现方法,默认你的数据逻辑为:通过待匹配单元格值关联前缀内容、通过唯一ID关联后缀内容,最终拼接为空格分隔的字符串(可根据实际需求调整分隔符):
适用Excel 2021/365及以上版本(含WPS最新版)
优先用XLOOKUP+TEXTJOIN组合,容错性更高:
=TEXTJOIN(" ", TRUE, XLOOKUP(待匹配单元格, 前缀表匹配列, 前缀表取值列, ""), XLOOKUP(唯一ID单元格, 后缀表匹配列, 后缀表取值列, ""))
示例:
假设前缀存在「参数1」 sheet:A列为待匹配值、B列为前缀内容;后缀存在「参数2」sheet:A列为唯一ID、B列为后缀内容;结果页A2是待匹配值、B2是对应唯一ID,公式写为:
=TEXTJOIN(" ", TRUE, XLOOKUP(A2, 参数1!A:A, 参数1!B:B, ""), XLOOKUP(B2, 参数2!A:A, 参数2!B:B, ""))
如果存在多个匹配项需要全部拼接,可替换为FILTER方案:
=TEXTJOIN(" ", TRUE, FILTER(参数1!B:B, 参数1!A:A=A2, ""), FILTER(参数2!B:B, 参数2!A:A=B2, ""))
兼容Excel 2019及更早版本
用INDEX+MATCH或者VLOOKUP实现,这里推荐兼容性更强的INDEX+MATCH组合(不受匹配列位置限制):
=IFERROR(INDEX(参数1!B:B, MATCH(A2, 参数1!A:A, 0))&" ", "")&IFERROR(INDEX(参数2!B:B, MATCH(B2, 参数2!A:A, 0)), "")
如果匹配列在取值范围的第一列,也可以用VLOOKUP简化:
=IFERROR(VLOOKUP(A2, 参数1!A:B, 2, FALSE)&" ", "")&IFERROR(VLOOKUP(B2, 参数2!A:B, 2, FALSE), "")
内容的提问来源于stack exchange,提问作者StarB
相关产品推荐
相关产品推荐

