VLOOKUP跨表匹配成功后拼接导入表指定单元格文本返回当前表的实现方法
实现步骤
1. 先完成跨表权限验证
IMPORTRANGE需要先授权才能正常调用,先在当前表任意空白单元格输入公式:=IMPORTRANGE("你的来源表文件URL","来源表标签名!A1")
点击弹出的「允许访问」按钮完成授权,完成后可以删掉这个测试单元格。
2. 替换为可实现拼接需求的公式
你原公式的逻辑存在语法错误,推荐用Google Sheets原生函数组合实现需求,不需要额外加载自定义脚本:
- 如果需要匹配成功后直接拼接来源表同一行的指定列内容,用以下公式:
=IFERROR(TEXTJOIN("分隔符",TRUE,QUERY(IMPORTRANGE("你的来源表文件URL","来源表标签名!数据范围"),"SELECT 要拼接的列序号 WHERE 匹配列序号 = '"&当前表匹配关键词单元格&"'",0)),"无匹配")
- 如果你需要额外加「匹配到的对应列值为Yes才拼接」的判断,调整WHERE条件即可:
=IFERROR(TEXTJOIN("分隔符",TRUE,QUERY(IMPORTRANGE("你的来源表文件URL","来源表标签名!数据范围"),"SELECT 要拼接的列序号 WHERE 匹配列序号 = '"&当前表匹配关键词单元格&"' AND 判断Yes的列序号 = 'Yes'",0)),"无匹配")
参数替换说明
分隔符:替换成你想要的拼接分隔符,比如用逗号分隔填", ",用空格分隔填" ",不需要分隔符填""你的来源表文件URL:替换为实际的来源表链接来源表标签名!数据范围:替换为来源表的工作表名+查询的数据范围,比如Sheet1!A:Z要拼接的列序号:QUERY函数中IMPORTRANGE导入的列按顺序命名为Col1、Col2...,比如要拼接来源表的C、D列就写Col3,Col4匹配列序号:你用来做VLOOKUP匹配的关键词在来源表的列对应序号,比如匹配值在来源表A列就写Col1当前表匹配关键词单元格:替换成你当前表用来做匹配依据的单元格,比如A2判断Yes的列序号:替换成你要判断值为Yes的来源表列对应序号,比如判断来源表E列的值就写Col5
提示:如果你的匹配关键词是数字格式,需要把WHERE条件中匹配值外面的单引号去掉,否则会出现匹配失败的问题。
3. 效果验证
输入替换完参数的公式后按回车,匹配成功时会自动拼接指定列内容返回,没有匹配到会返回你设置的默认值(比如上面公式里的「无匹配」)。
内容的提问来源于stack exchange,提问作者KHM
相关产品推荐
相关产品推荐

