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

Google Sheets中QUERY函数结合OR逻辑与动态日期的问题排查

问题排查与解决

核心问题分析

你的QUERY公式存在三个关键错误:

  1. 分数条件完全反转:需求是Score1>45、Score2>50、Score3>50,但公式中写的是C<45、D<50、E<50,导致筛选出不符合要求的行。
  2. 日期逻辑错误:需求是筛选「18个月前及更早」的日期,即日期应小于等于TODAY()-548,但公式中用了B >(大于),逻辑完全相反。
  3. 动态日期注入方式错误:在QUERY字符串中直接写'=today()-548'无法被识别,需要将计算后的日期格式化为QUERY能解析的字符串并拼接进查询语句。

修正后的公式

=QUERY(DATA!A1:E10, "select distinct A, C, D, E, B where (C > 45 OR D > 50 OR E > 50 OR B <= date '"&TEXT(TODAY()-548, "yyyy-MM-dd")&"')", 1)

关键修正点说明

  • 修正分数条件:将C<45改为C>45,D<50改为D>50,E<50改为E>50,匹配需求中的分数阈值。
  • 调整日期逻辑:将B >改为B <=,确保筛选出18个月前及更早的日期。
  • 正确注入动态日期:使用TEXT(TODAY()-548, "yyyy-MM-dd")将计算后的日期转换为QUERY支持的yyyy-MM-dd格式,再通过&拼接进查询字符串,实现动态更新。
  • 添加去重逻辑:在select后加入distinct,确保结果中无重复行,满足需求。

验证效果

修正后的公式会正确包含ID为1的行(满足日期条件),同时筛选出所有符合分数条件的行,且自动去重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:34:52