如何在Google Sheets的QUERY函数中按日期月份筛选数据?
解决Google Sheets QUERY函数筛选指定月份日期的问题
问题原因
你之前的公式失效主要有两个核心问题:
LIKE是文本匹配运算符,无法直接作用于日期类型的单元格;- 直接用
'12/1/2025'这类字符串做日期比较时,QUERY函数默认只识别YYYY-MM-DD格式的日期字符串,其他格式会被当作文本处理,导致比较逻辑错误。
可行解决方案
方案1:用DATE函数指定日期范围(最可靠)
直接在QUERY语句中使用DATE(year, month, day)生成标准日期值进行比较,完全不受单元格显示格式影响:
=QUERY('Form Responses 1'!A2:N, "SELECT * WHERE G >= DATE(2025,12,1) AND G <= DATE(2025,12,31)", 0)
- 末尾的
0表示数据源无表头(如果Form Responses 1的表头在A1行、数据从A2开始,保留该参数即可;若需包含表头,改为1)。
方案2:提取月份和年份筛选
通过QUERY内置的MONTH()和YEAR()函数直接提取日期的月份和年份进行匹配,适合筛选任意年份的12月数据:
=QUERY('Form Responses 1'!A2:N, "SELECT * WHERE MONTH(G)+1 = 12 AND YEAR(G) = 2025", 0)
- 注意:QUERY的
MONTH()函数返回值为0-11(对应实际1-12月),因此需要加1才能匹配真实月份数字。
方案3:转文本后用LIKE匹配(适合习惯文本筛选的场景)
先把日期转成你指定的mm/dd/yyyy文本格式,再用LIKE匹配以12开头的字符串:
=QUERY('Form Responses 1'!A2:N, "SELECT * WHERE TEXT(G, 'mm/dd/yyyy') LIKE '12%'", 0)
内容的提问来源于stack exchange,提问作者We5inelgr
相关产品推荐
相关产品推荐

