【问题标题】:Bring all values in filter except the ones in the condition将除条件中的值之外的所有值带入过滤器
【发布时间】:2020-10-20 01:09:43
【问题描述】:

我有一个要过滤的项目列表。 我创建了一个过滤器,其中包含具有多个条件的正则表达式匹配,例如mo|oa (所以它会带上字符串中包含mo(如mouse)或oagoat)的任何项目)。 =filter(A2:A10,regexmatch(A2:A10,C1))

我想要的是带上列表的其余部分。即所有不属于我提到的标准的项目(不包括mooa)。 我有两个问题:

  1. 是否有可能让过滤器带来剩余的项目?如果有,怎么做?

  2. 在试图弄清楚时,我使用了<>&C1(条件为mo|oa的单元格)。 =filter(A2:A10,regexmatch(A2:A10,"<>"&C1))

令人惊讶的是,它忽略了第一部分mo,只显示了包含oa 的结果。我很好奇原因。

这是一个演示文件: https://docs.google.com/spreadsheets/d/1gvTN2p2W7Agw9tIfo4ZcsBlujl0Iq0Ft8h9aYuSH4NQ/edit#gid=0

谢谢!

【问题讨论】:

    标签: regex google-sheets


    【解决方案1】:

    您可以将NOT 用于REGEXMATCH

    =filter(A2:A10,NOT(regexmatch(A2:A10,C1)))
    

    【讨论】:

    • 非常感谢,就像一个魅力!对我的第二个问题有任何想法吗?为什么会出现这种奇怪的行为?
    • @Tom 这并不奇怪。您要求正则表达式查找包含<>mooaar 的字符串,因此它找到了goatleopard。要进行否定,您必须使用 ^((?!mo|oa|ar).)*$ 之类的东西,但 AFAIK GS 正则表达式不支持环视。
    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多