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

如何在电子表格查询中实现SQL式NOT IN排除字符串列表?

在Google Sheet的QUERY函数中实现NOT IN排除字符串列表的方法

Google Sheet的QUERY函数确实不支持SQL里的NOT IN语法,不过有几种替代方案可以实现相同效果:

方法1:用多个!= + AND组合(适合短列表)

如果要排除的字符串数量不多,直接把每个值用!=判断,再用AND连接起来就行:

=QUERY(A:B, "SELECT A, B WHERE B != 'value1' AND B != 'value2'", 1)
  • 注意:字符串必须用单引号包裹,数字则不需要
  • 最后面的1表示数据有表头,没有表头的话改成0或者去掉

方法2:用REGEXMATCH匹配多值(适合中等长度列表)

用正则表达式的竖线|分隔多个要排除的字符串,配合NOT取反:

=QUERY(A:B, "SELECT A, B WHERE NOT REGEXMATCH(B, 'value1|value2')", 1)
  • 如果字符串里包含正则特殊字符(比如.、*、?),需要加反斜杠\转义,比如val\.ue1
  • 这种写法比一堆AND更简洁,适合排除5-10个值的场景

方法3:结合MATCH与FILTER(适合超长列表)

如果要排除的字符串特别多,把它们放到单独的单元格区域(比如D1:D10),用FILTER配合ISNA+MATCH实现,效果和NOT IN完全一致:

=FILTER(A:B, ISNA(MATCH(B:B, D1:D10, 0)))
  • 虽然不是直接用QUERY,但这种方式维护起来更方便,修改排除列表只需要改D列的内容,不用动公式
  • MATCH里的0表示精确匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:42:27