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

如何使用VLOOKUP结合ArrayFormula将多个匹配列的查询结果合并至单个列中?

解决方案:将VLOOKUP返回的两列结果合并到单个列

当然可以实现这个需求!你只需要调整现有公式,把VLOOKUP返回的第2列和第3列结果拼接成单个字符串即可。下面提供几种实用的实现方式:

方法1:直接用&拼接(简单高效)

把两次VLOOKUP的结果用&连接,中间可以添加你需要的分隔符(比如空格、逗号等):

=Arrayformula(if(len(A9:A), iferror(VLOOKUP(B9:B, 'Concat Sheet Data'!A9:Q, 2, FALSE)&" "&VLOOKUP(B9:B, 'Concat Sheet Data'!A9:Q, 3, FALSE)),))
  • 这里的" "是分隔符,你可以改成", "、"-"等任意你需要的符号
  • 如果某一列结果为空,拼接后会保留另一列的内容

方法2:用INDEX+MATCH避免重复查询(性能更优)

如果你的数据集较大,重复调用VLOOKUP会稍微影响性能,推荐用MATCH定位行号,再用INDEX提取对应列内容后拼接:

=Arrayformula(if(len(A9:A), iferror(INDEX('Concat Sheet Data'!B9:C, MATCH(B9:B, 'Concat Sheet Data'!A9:A, 0), 1)&" "&INDEX('Concat Sheet Data'!B9:C, MATCH(B9:B, 'Concat Sheet Data'!A9:A, 0), 2)),))
  • MATCH(B9:B, 'Concat Sheet Data'!A9:A, 0)会找到B列值在Concat Sheet Data的A列中匹配的行号
  • INDEX('Concat Sheet Data'!B9:C, 行号, 1)提取第2列(B列)内容,行号,2提取第3列(C列)内容

方法3:用TEXTJOIN自定义合并规则

如果需要更灵活的合并逻辑(比如忽略空值、自定义分隔符),可以用TEXTJOIN函数:

=Arrayformula(if(len(A9:A), iferror(TEXTJOIN(", ", TRUE, VLOOKUP(B9:B, 'Concat Sheet Data'!A9:Q, {2,3}, FALSE))),))
  • 第一个参数", "是你想要的分隔符
  • 第二个参数TRUE表示自动忽略空值(如果某一列没有内容,不会显示多余的分隔符)
  • 直接传入VLOOKUP返回的{2,3}列范围,TEXTJOIN会自动把这两列的内容合并成单个字符串

以上三种方法都能满足你的需求,你可以根据自己的实际场景选择最合适的公式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:02:40