【问题标题】:Import function using QUERY + REGEXMATCH doesn't work with excluding & select parameters使用 QUERY + REGEXMATCH 的导入功能不适用于排除和选择参数
【发布时间】:2020-12-10 23:29:15
【问题描述】:

我想通过 2 个不同的过滤功能导入工作表。第一个需要包括第 14 列的值等于 1 的每一行,第二个需要排除 H 列包含其中一个字符串“alc”“alcool”“vin”的行。我在google-sheet-query-matches-function-doesnt-exclude-strings 之前的问题中看到过。但是,当我尝试将第一个过滤器添加到我以前的公式中时它不起作用,这是我的公式:

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

我尝试使用和不使用"",因为我的列的值是数字,但它们都不起作用

【问题讨论】:

标签: google-sheets google-sheets-formula


【解决方案1】:

使用:

=FILTER(QUERY(IMPORTRANGE("1RV1-mxrd4wjVBw8hNu1yQAOZvlaO0jD5Ar5AArg-7QE";
 "wc-product-export-27-11-2020-1606486738987!A:BE");
 "select Col1,Col3,Col4,Col26,Col8,Col30,Col40,Col41,Col44,Col45,Col49 
  where Col14 = 1"); 
 NOT(REGEXMATCH(QUERY(IMPORTRANGE("1RV1-mxrd4wjVBw8hNu1yQAOZvlaO0jD5Ar5AArg-7QE";
 "wc-product-export-27-11-2020-1606486738987!A:BE");
 "select Col8 
  where Col14 = 1"); "(?i)alcool|vin|alc")))

或更短:

=INDEX(QUERY(IMPORTRANGE("1RV1-mxrd4wjVBw8hNu1yQAOZvlaO0jD5Ar5AArg-7QE";
 "wc-product-export-27-11-2020-1606486738987!A:BE");
 "select Col1,Col3,Col4,Col26,Col8,Col30,Col40,Col41,Col44,Col45,Col49 
  where Col14 = 1
    and not lower(Col8) contains "&JOIN(" and not lower(Col8) contains "; "'"&SPLIT(
 "alcool|vin|alc"; "|")&"'")))

【讨论】:

  • 不,它不能正常工作,正如我之前的问题中解释的那样,我已将 MATCHES 函数链接为“区分大小写”--> MATCHES 使用默认情况下区分大小写的正则表达式,但你可以使用标志(将 (?i) 放入正则表达式)使其不区分大小写。但 QUERY 不支持标志。 @player0
  • 所以为了正确过滤它,我必须使用 REGEX 和标志,但是我不知道如何使用它添加第二个过滤器参数。 @player0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 2015-09-30
  • 2017-10-27
  • 1970-01-01
  • 2021-09-11
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多