Google Sheets QUERY函数解析小数数值报错,无法筛选低版本站点
解决Google Sheets QUERY函数的PARSE_ERROR问题
嗨,我来帮你搞定这个头疼的解析错误!你看到的PARSE_ERROR: Encountered " <DECIMAL_LITERAL> ".6 "",本质是QUERY函数没法正确识别你对版本号的比较逻辑——大概率是你的版本号列是文本格式,直接用数值(比如0.6)做比较时触发了语法冲突,或者你的WHERE子句写法有格式问题。
下面给你两种针对性的解决办法,按需选用:
方法一:纯小数版本号直接转数值比较
如果你的版本号是1.2、0.5这种单小数格式,先把版本号列转换成数值再写条件:
=QUERY({'Heyo1 - CLOUD'!A:Z}, "SELECT Col1, Col2 WHERE VALUE(Col3) < 0.6", 1)
- 把
Col1、Col2换成你要提取的站点名称等目标列,Col3换成存储版本号的列编号; - 最后的
1表示你的数据有表头,要是没有表头就删掉这个参数。
方法二:多段版本号(如2.3.1)用正则提取后比较
如果你的版本号是2.3.1这种多段格式,直接转数值会出错,这时候用正则提取主版本部分再比较:
=QUERY({'Heyo1 - CLOUD'!A:Z}, "SELECT Col1, Col2 WHERE VALUE(REGEXEXTRACT(Col3, '^\d+\.\d+')) < 0.6", 1)
REGEXEXTRACT(Col3, '^\d+\.\d+')会提取版本号的前两段(比如从0.5.2里拿出0.5),转成数值后再做比较;- 同样要替换成你实际的列编号哦。
额外要注意的小细节
- 别在WHERE子句里加多余空格,比如不要写成
WHERE Col3 < .6(数值前多了空格),QUERY对格式特别敏感; - 如果版本号列有空值,建议加上
AND Col3 IS NOT NULL过滤空行,避免触发额外错误。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

