如何在Google Sheets中使用QUERY函数(SQL)从日期时间列提取日期
从日期时间列提取日期并筛选非空B列的正确公式
你原用的公式错误地将SPLIT函数嵌入到QUERY的字符串参数中,导致语法混乱,无法实现需求。以下是两种可行的解决方法:
方法一:针对标准日期时间格式
如果A列是Google Sheets识别的标准日期时间格式,可先提取纯日期值再筛选:
=QUERY({ARRAYFORMULA(DATEVALUE(A:A)), B:B}, "select Col1 where Col2 is not null", 1)
- 先通过
ARRAYFORMULA(DATEVALUE(A:A))把A列的日期时间批量转成纯日期值,再和B列组成虚拟数组,最后用QUERY筛选出B列非空的行。
方法二:针对文本格式的日期时间
如果A列是文本形式的日期时间(比如"2024-05-20 14:30"),可直接在QUERY里截取日期部分:
=QUERY(A:B, "select LEFT(A, FIND(' ', A)-1) where B is not null", 1)
- 用
LEFT(A, FIND(' ', A)-1)截取A列中第一个空格前的日期文本,同时筛选B列非空的行。
补充:仅提取日期的简单写法
如果不需要筛选B列,只是提取A列的日期,直接用以下公式即可,之后设置单元格格式为日期就能正常显示:
=ARRAYFORMULA(INT(A:A))
或
=ARRAYFORMULA(DATE(A:A))
内容的提问来源于stack exchange,提问作者Dharmesh
相关产品推荐
相关产品推荐

