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

如何用QUERY函数实现:C2为ALL时返回SiteLevel全部数据,否则按C2筛选?

解决QUERY函数根据C2动态筛选(含ALL返回全部)的问题

直接用下面的公式就能实现需求,核心是通过字符串拼接让WHERE子句动态适配C2的内容:

文本列筛选版本(如果要筛选的列是文本类型)

=QUERY(SiteLevel, "SELECT * WHERE '"&C2&"' = 'ALL' OR [你的筛选列表头] = '"&C2&"'", 1)

数值列筛选版本(如果要筛选的列是数字类型)

=QUERY(SiteLevel, "SELECT * WHERE '"&C2&"' = 'ALL' OR [你的筛选列表头] = "&C2&"", 1)

关键说明

  • 把公式里的[你的筛选列表头]替换成SiteLevel命名范围中实际要筛选的列的表头名称(比如你的列叫"站点等级"就直接写这个)
  • 逻辑很简单:当C2等于"ALL"时,第一个条件'"&C2&"' = 'ALL'成立,OR后面的筛选条件会被直接跳过,返回所有行;当C2是具体筛选值时,第一个条件不生效,就执行后面的列匹配逻辑
  • 最后面的1表示你的SiteLevel数据包含表头,如果没有表头就改成0

之前用OR子句没成功,大概率是字符串拼接时的引号没处理对——文本值必须用单引号包裹在QUERY语句里,数值则不需要,这个细节很容易踩坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:50:59