【问题标题】:Google sheet QUERY + MATCHES function doesn't exclude stringsGoogle sheet QUERY + MATCHES 函数不排除字符串
【发布时间】:2020-12-06 14:36:01
【问题描述】:

我想从排除某些字符的工作表中导入行。我首先使用 CONTAINS 函数完成了它,但我没有找到使用多个参数的方法。所以我使用 MATCHES 函数:

=Query(importrange("URL";"Sheet!a:be");"SELECT Col1, Col3, Col4, Col26, Col8, Col30, Col40, Col41, Col44, Col45, Col49 WHERE NOT Col8 MATCHES '.*alc.*|.*vin.*|.*alcool.*'")

但是在 Col8 中仍然有这些字符串出现的行,我不知道为什么?

无论如何,我怎样才能过滤我的导入排除那些字符串?

【问题讨论】:

  • 请分享复制此问题的示例表。

标签: google-sheets google-sheets-formula


【解决方案1】:

如果由于MATCHES 区分大小写而没有过滤掉行(它是,并且不能在QUERY 的正则表达式中使用标志),您可以改用FILTER

=FILTER(
  QUERY(
    IMPORTRANGE("URL"; "Sheet!A:BE");
    "SELECT Col1, Col3, Col4, Col26, Col8, Col30, Col40, Col41, Col44, Col45, Col49"
  );
  NOT(REGEXMATCH(IMPORTRANGE("URL"; "Sheet!H:H"); "(?i)alc|vin|alcool"))
)

【讨论】:

  • 谢谢它以这种方式正常工作,但是它导入了我工作表的所有列,而我只需要我在第一个公式中定义的列。是否可以使用 FILTER 函数定义这些相同的列?因为它不再是 QUERY 公式了,所以相当于 SELECT WHERE 吗?
  • 我也想知道为什么 MATCHES 函数是区分大小写的?为什么它不能正确过滤?
  • @JawadBouna 抱歉,我完全忘记了这些专栏。修复它(添加您的选择)。 MATCHES 使用默认情况下区分大小写的正则表达式,但您可以使用标志(将(?i) 放入正则表达式中)使其不区分大小写。但是QUERY 不支持标志。为什么会这样 - 这是 Google 表格开发人员的问题,我不知道。
猜你喜欢
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多