如何使用Google Sheets的QUERY函数提取指定日期范围的列表数据
Google Sheets QUERY函数筛选日期报错解决方案
原始报错翻译
你收到的英文报错翻译如下:
无法解析函数QUERY的第2个参数查询字符串:解析错误:在第1行第18列处遇到标识「D」,预期应为以下内容之一:"(" ...
错误原因
你的公式存在3处不符合QUERY语法规范的问题:
- 比较运算符书写错误:大于等于的正确写法是
>=、小于等于的正确写法是<=,你将符号顺序写反为=>、=<,属于QUERY语法无法识别的写法 - 日期格式错误:QUERY中
date关键字后必须跟英文半角单引号包裹的YYYY-MM-DD格式日期,你使用了中文弯引号,且日期用逗号分隔,不符合语法要求 - 括号冗余(非报错原因,可优化):单条件判断无需额外包裹括号,不会触发报错但可以简化写法
修正后公式
仅返回符合条件的D列内容
=QUERY(Index!1:1988, "SELECT D WHERE D >= date '2020-09-01' AND D <= date '2020-09-30'")
返回符合条件的整行数据
=QUERY(Index!1:1988, "SELECT * WHERE D >= date '2020-09-01' AND D <= date '2020-09-30'")
批量适配优化
如果你需要给多个月度工作表套用同个公式,无需手动修改日期,可将工作表命名为2020-09这类年-月格式,使用以下动态公式自动匹配对应月份:
=QUERY(Index!1:1988, "SELECT * WHERE D >= date '"&TEXT(DATE(LEFT(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),4),RIGHT(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2),1),"yyyy-mm-dd")&"' AND D <= date '"&TEXT(EOMONTH(DATE(LEFT(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),4),RIGHT(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2),1),0),"yyyy-mm-dd")&"'")
内容的提问来源于stack exchange,提问作者Jayce Dawson
相关产品推荐
相关产品推荐

