Google Sheets QUERY公式报错:如何按条件及日期范围提取交易数据?
修正后的QUERY公式
正确的公式写法如下:
=QUERY(TRANSACTIONS!B6:P9997, "SELECT B,C,G WHERE O='Payment' AND B >= DATE '"&TEXT(DATE(2024,3,1), "yyyy-MM-dd")&"' AND B <= DATE '"&TEXT(DATE(2024,4,1), "yyyy-MM-dd")&"'")
原公式的错误点
- 字符串拼接逻辑错误:原公式将
AND写在了QUERY的字符串参数外部,必须把所有查询条件整合到同一个字符串内,通过&完成片段拼接 - 日期生成错误:直接写
2024-03-01会被识别为数值运算(结果为2020),需用DATE(2024,3,1)生成标准日期值 - TEXT函数参数缺失:原公式未指定日期格式(QUERY要求DATE后必须是
yyyy-MM-dd格式字符串),且存在引号、括号未闭合的语法问题
动态按月提取优化方案
如果需要通过单元格输入月份来动态提取数据,可将硬编码日期替换为单元格引用。例如在A1单元格输入目标月份(如2024-03),公式可改为:
=QUERY(TRANSACTIONS!B6:P9997, "SELECT B,C,G WHERE O='Payment' AND B >= DATE '"&TEXT(EOMONTH(A1,-1)+1, "yyyy-MM-dd")&"' AND B <= DATE '"&TEXT(EOMONTH(A1,0), "yyyy-MM-dd")&"'")
修改A1的月份值即可自动提取对应区间的交易记录。
内容的提问来源于stack exchange,提问作者EKL
相关产品推荐
相关产品推荐

