Google Sheets中能否将跨工作簿数据纳入同一QUERY数组?
问题:将IMPORTRANGE纳入QUERY表格数组时报错的解决方法
我原本使用公式在同一工作簿内查询4个表格:
=IFNA(QUERY({'Sheet1'!A2:J;'Sheet2'!A2:J;'Sheet3'!A2:J;'Sheet4'!A2:J},"select Col2,Col5, ..."))
因隐私/权限限制无法将另一工作簿的第五个表格数据移入当前工作簿,尝试加入IMPORTRANGE后公式变为:
=IFNA(QUERY({IMPORTRANGE("<url>","'New Sheet'!A2:J");'Sheet1'!A2:J;'Sheet2'!A2:J;'Sheet3'!A2:J;'Sheet4'!A2:J},"select Col2,Col5, ..."))
但报错提示:Unable to parse query string for Function QUERY parameter 2: lower takes a text parameter.
请问是否可将IMPORTRANGE纳入QUERY的表格数组?
解答
可以将IMPORTRANGE纳入QUERY的表格数组,报错并非语法问题,而是权限未验证或数据类型不匹配导致的,按以下步骤解决:
先完成IMPORTRANGE权限授权:
在任意空白单元格单独输入=IMPORTRANGE("<url>","'New Sheet'!A2:J"),点击弹出的授权按钮完成权限验证,确保远程数据能正常加载。未授权的IMPORTRANGE会返回错误值,直接导致QUERY解析失败。修正QUERY中的类型错误:
报错提示的lower takes a text parameter,说明你在QUERY语句中使用了lower()函数,但对应的列(比如筛选/处理的目标列)存在非文本类型数据(数字、空白、错误值),或者远程表格与本地表格的列类型不一致。
解决方法是先将目标列转为文本再使用lower(),比如把lower(Col2)改为lower(to_text(Col2))。重新组合公式:
权限验证通过且修正类型处理后,放回原公式即可,示例如下:=IFNA(QUERY({IMPORTRANGE("<url>","'New Sheet'!A2:J");'Sheet1'!A2:J;'Sheet2'!A2:J;'Sheet3'!A2:J;'Sheet4'!A2:J},"select Col2,Col5 where lower(to_text(Col2)) contains '关键词' ...",1))
内容的提问来源于stack exchange,提问作者geetee
相关产品推荐
相关产品推荐

