按条件导入多个Google Sheets到总表的QUERY函数报错解决求助
错误原因
- QUERY处理
{}包裹的自定义数组时,仅支持Col1、Col2这类列序号指代,不支持A、B这类列标,因此第一次写where A = xxx会直接报错。 - 你仅导入G4:J区域时,生成的数组只有4列,
Col1对应的是源表的G列,并非你用来匹配的源表A列,因此匹配不到对应数据,返回空结果。
解决方案
无需担心导入A-F列多余,你可以先导入包含匹配列(A列)和目标列(G-J列)的A4:J区域,再在QUERY的select语句中指定仅返回G-J对应的列即可,多余列不会出现在最终输出中。
修正后公式
=query( { importrange("https://docs.google.com/spreadsheets/d/1scqPKhWpbZeOK_iYR7EaypNxMhh__V_O2FLUjbjrNFc/edit#gid=0","CDP Scoring Sheet (Initial)!A4:J"); importrange("https://docs.google.com/spreadsheets/d/1PkBWxUG_0BG4gNhXFGHInSdVI5nMo4FReRpCQIVVs3w/edit#gid=664164578","CDP Scoring Sheet (Initial)!A4:J") },"select Col7,Col8,Col9,Col10 where Col1 = '"&$A4&"'")
注意事项
如果总表A列的匹配值为数字类型,需要去掉where条件里的单引号,改为where Col1 = "&$A4&",避免因数据类型不匹配导致匹配失败。如果需要批量下拉填充公式,建议先单独运行一次importrange完成授权,避免后续出现权限报错。
内容的提问来源于stack exchange,提问作者Kelvs
相关产品推荐
相关产品推荐

