【问题标题】:Why can't I use multiple LIKE NOT in google query?为什么我不能在 google 查询中使用多个 LIKE NOT?
【发布时间】:2022-10-20 21:38:58
【问题描述】:

我目前正在尝试缩小我的数据范围。我想消除某些我不想在查询中提取的值。

首先我想消除 - (破折号)

=query(A1:B,"select A where NOT A LIKE '%-%'") 
That works, 

但是,如果我想继续缩小我使用的数据范围

=query(A1:B,"select A where NOT A LIKE '%-%' or NOT A LIKE '%WOLF%'")

那是行不通的。它没有缩小我的数据范围,而是添加了破折号并保留了 wolf 。如何继续对多个字符串使用 NOT like?

【问题讨论】:

  • 我认为您的意思是使用 AND 而不是 OR ?
  • 试过了,不行。
  • 请解释“这不起作用”
  • 请看最后一栏。我使用的最后一个查询没有删除 Dash 或删除 wolf..

标签: google-sheets google-query-language


【解决方案1】:

使用括号使逻辑更容易理解,如下所示:

=query(A1:A, "where not (A like '%-%' or A like '%WOLF%')", 0)

【讨论】:

  • 这么小的改进。萝拉,但那是完美的
  • 这适用于使用 LIKE 还是使用多个变量?
【解决方案2】:

更好地使用正则表达式,例如:

=QUERY(A1:A, "where not A matches '.*-.*|.*WOLF.*'")

【讨论】:

    【解决方案3】:

    只是为了添加到这个对话中,第二个查询将返回任何没有 Wolf 和破折号的内容。因此,如果我的数据中有“狼人”和“灰狼”。我会找回“灰狼”,但不会找回“狼人”。为什么? OR 运算符告诉查询返回一些东西,如果它不像一个或另一个。 “灰太狼”不像'%-%'。即使它会被 OR '%Wolf%' 语言过滤,它也会被 OR 语句的第一部分捕获,因此查询说“是的,这就像这样或那样,因为它就像你的无破折号语言,我会退还的。”反之亦然。如果你的数据中有“鼹鼠人”,它会弹出,因为它不像 '%Wolf%' 并且查询会说“好吧,我有一个破折号,但它不是狼,所以我会包括它。”

    上面的用户建议使用 AND 运算符,因为这是您过滤掉 WOTH wolves 和 dashes 所需要的。按照它的编写方式,一个单元格必须像 BOTH 一样才能让查询排除它。

    我希望这可以澄清。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 2020-09-12
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2010-10-04
      相关资源
      最近更新 更多