如何用VLOOKUP合并返回两列数据且兼容ARRAYFORMULA
问题原因
你编写的合并公式逻辑错误:TEXTJOIN(" ", TRUE, {1,2}) 会直接生成静态文本字符串 "1 2",而VLOOKUP的第三参数要求传入要返回的列索引数值,传入文本自然无法定位到对应列返回内容。
兼容ARRAYFORMULA的解决方案
以下两种方案都可以直接在Sheet2的B2单元格输入,自动向下溢出所有匹配结果,不需要手动下拉填充。
方案1:全版本兼容写法
不需要LAMBDA支持,适配旧版谷歌表格、WPS 365、Office 365等所有支持ARRAYFORMULA的工具:
=ARRAYFORMULA(IF(A2:A="",,IFERROR(VLOOKUP(A2:A,Sheet1!A:C,2,FALSE)&" "&VLOOKUP(A2:A,Sheet1!A:C,3,FALSE),"无匹配记录")))
方案2:高性能写法(需支持LAMBDA函数)
仅执行一次VLOOKUP查询,数据量较大时速度优势明显,适配新版谷歌表格、Office 365最新版本:
=BYROW(A2:A,LAMBDA(id,IF(id="",,IFERROR(JOIN(" ",VLOOKUP(id,Sheet1!A:C,{2,3},FALSE)),"无匹配记录"))))
注意事项
如果不需要处理ID不存在的报错场景,可以删掉外层的IFERROR封装即可。
内容的提问来源于stack exchange,提问作者JamesReed68
相关产品推荐
相关产品推荐

