【问题标题】:Mark cells that contain words from a FILTER list标记包含过滤器列表中单词的单元格
【发布时间】:2020-06-13 17:23:39
【问题描述】:

我有一个篮子中的单词列表,我想通过过滤器列表预先选择它,并对出现在过滤器表中的篮子中的单词进行颜色编码。挑战在于,篮子里的词不是同一个词,而是包含它。 Here an example >

过滤器:

+--------+
| Apple  |
+--------+
| Banana |
+--------+

篮子:

+--------------+---+
| Apple//Cake  | x |
+--------------+---+
| Water        |   |
+--------------+---+
| Coke bottle  |   |
+--------------+---+
| Banana split | x |
+--------------+---+

【问题讨论】:

    标签: arrays regex google-sheets google-sheets-formula gs-conditional-formatting


    【解决方案1】:

    使用:

    =(A2<>"")*(INDEX(REGEXMATCH(LOWER(A2), 
     TEXTJOIN("|", 1, LOWER(INDIRECT("FILTER!A:A"))))))
    

    【讨论】:

    • 感谢您的回答!你认为你可以解释你的公式中发生了什么,以便我理解吗?
    • 当然,如果 A2 不为空并且(乘法)正则表达式从过滤表中的 A 列中检测到小写 A 列和小写列表之间的部分匹配。如果您想要更严格的匹配,您可以删除这两个 LOWER 这将导致该公式将区分大小写。
    【解决方案2】:

    Conditional formatting中可以使用以下公式作为规则

    =REGEXMATCH(A2,""&JOIN("|",INDIRECT("'FILTER'!A1:A3"))&"")
    

    【讨论】:

    • 谢谢!您认为您可以向我解释该部分在您的代码中的作用吗? "&amp;JOIN("|",INDIRECT("'FILTER'!A1:A3"))&amp;"")。我了解 INDIRECT,但不了解之前和之后发生的事情。
    • 如果我们只有REGEXMATCH 代表Banana,它将返回TRUE 只代表包含Banana 的单元格。然后我们需要 3 条规则,每个过滤器 1 条。我们使用JOIN 和| 作为分隔符将所有3 个单词连接到一个正则表达式Banana|Apple|Water。表达式中的分隔符| 的作用是OR。请阅读有关使用的功能,例如。 REGEXMATCH。如果有更多需要,请再问。
    • 感谢您的解释。虽然我喜欢您的公式的较短版本,但我认为 FILTER!A:A 不起作用。由于我的过滤器列表可能会扩展,因此不考虑这一点会很有用。是否有可能调整你的公式?否则我会选择@player0,这部分似乎已经解决了。
    • “我认为FILTER!A:A 不起作用”。正确的。 “由于我的过滤器列表可能会扩展,....我会选择@player0,这部分似乎已经解决了”。没问题。在您的情况下,这是一种更好的方法。
    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2020-01-18
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多