You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets按时间日期组合查询数据问题求助

Google Sheets 查询公式修正方案

原公式问题分析

  • 时间比较逻辑易出错:A <= time'xxx' AND A >= time'xxx' 若B1时间早于B2,会直接无匹配结果
  • QUERY语句末尾存在冗余空格,可能触发语法报错
  • 未做数组化批量适配:原公式用单个单元格引用(A5),无法通过ArrayFormula自动填充整列

修正后的公式

假设你要在Sheet13的B列(从B2开始),匹配当前行A列的日期,同时以Sheet13的B1(结束时间)、B2(开始时间)为时间范围,查询Sheet12中符合条件的唯一C列数据,修正后的公式如下:

=ArrayFormula(IF(A2:A="",,TRANSPOSE(UNIQUE(QUERY('Sheet 12'!$A$2:$C, "SELECT C WHERE B = date'"&TEXT(A2:A, "yyyy-mm-dd")&"' AND A BETWEEN time'"&TEXT($B$2, "hh:mm:ss")&"' AND time'"&TEXT($B$1, "hh:mm:ss")&"'", 0)))))

核心修改点

  1. 时间范围逻辑优化:改用BETWEEN语法替代原有的双重比较,确保无论B1、B2的时间顺序,只要是有效区间就能匹配数据
  2. 语法规范修正:删除QUERY语句末尾的冗余空格,避免语法解析错误
  3. 批量适配调整:将单个单元格引用A5改为数组引用A2:A,搭配IF(A2:A="",,)实现空值判断,让ArrayFormula自动填充整个B列
  4. 引用固定:对时间范围单元格(B1、B2)使用绝对引用$B$1、$B$2,防止下拉时引用偏移

内容的提问来源于stack exchange,提问作者Aqilun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:56:04