Google表格QUERY函数单列查询触发PARSE_ERROR解析报错
Google表格QUERY函数BY列解析报错解决
问题现象
- 跨工作表调用QUERY函数拉取数据时运行异常,目标列内容以Yes/No为主,手动将该列设置为文本格式后问题仍存在;查询语句移除该列后函数可正常运行
- 故障公式:
QUERY(Summary!A1:CR1,"select A,B,CK,L,C,K,U,N,AB, etc,,,,,,,BY,,,,etc,,,") - 完整报错信息:
Unable to parse query string for Function QUERY parameter 2: PARSE_ERROR: Encountered " "by" "BY "" at line 1, column 116. Was expecting one of: "true"
故障原因
这个问题和列内存储的Yes/No内容、手动设置的文本单元格格式没有任何关系。
QUERY函数底层使用Google Visualization API查询语法,BY是这套语法的保留关键字(即GROUP BY、ORDER BY分组、排序语法片段中的固定关键字),直接在select子句中写BY作为列标识时,解析器会将其判定为语法指令而非列名,最终触发解析错误。
修复方案
两种方法任选其一即可解决问题:
- 对冲突列名加反引号转义:将select语句中单独书写的
BY替换为`BY`,修改后对应查询片段参考:"select A,B,CK,L,C,K,U,N,AB, etc,,,,,,,BY,,,,etc,,," - 改用列位置引用:不直接使用列字母作为标识,按照列在所选数据源范围(Summary!A1:CR1)内从左到右的排列顺序,用
Col+序号的格式引用列,最左侧A列对应Col1、B列对应Col2,以此类推BY列对应第77列,将原语句中的BY替换为Col77即可,该写法不会触发保留字冲突。
内容的提问来源于stack exchange,提问作者mikeimp
相关产品推荐
相关产品推荐

