【问题标题】:Check if cell contains all comma separated values检查单元格是否包含所有逗号分隔值
【发布时间】:2018-07-01 23:50:29
【问题描述】:

我有一张包含以下数据的表格:

| Text                                    | Value    |  Value   |  Value   |
|:----------------------------------------|:---------|:---------|:---------|
|Jax and Jax friend Kung Lao fight Raiden | jax      | kung lao | raiden   |
|Jax and Jax friend Kung Lao fight Raiden | kitana   | kung lao | raiden   | 

还有以下公式:

=SUMPRODUCT( -- ISNUMBER(SEARCH(B1:D1;A1)))=COUNTA(B1:D1)
=SUMPRODUCT( -- ISNUMBER(SEARCH(B2:D2;A2)))=COUNTA(B2:D2)

返回:

TRUE
FALSE

这是按预期工作的。我得到 TRUE 的所有值都在文本单元格中找到,如果缺少一个或全部,则得到 FALSE

现在,我想修改,而不是在多个单元格中搜索,我只想在一个逗号分隔的单元格中搜索。像这样:

| Text                                    | Values                 | Formula |
|:----------------------------------------|:-----------------------|:--------|
|Jax and Jax friend Kung Lao fight Raiden | jax,kung lao,raiden    | TRUE    |
|Jax and Jax friend Kung Lao fight Raiden | kitana,kung lao,raiden | FALSE   |

我尝试过使用=SUMPRODUCT( -- ISNUMBER(SEARCH({B2};A2)))=COUNTA({B2}),但它不起作用。

【问题讨论】:

    标签: google-sheets formulas


    【解决方案1】:

    尝试拆分逗号分隔列表并像使用单元格区域一样使用拆分数组。

    =SUMPRODUCT(--isnumber(search(split(B2, ",", true, true), A2)))=counta(split(B2, ",", true, true))
    'full word search
    =SUMPRODUCT(--isnumber(search(text(split(B2, ",", true, true), " @ "), text(A2, " @ "))))=counta(split(B2, ",", true, true))
    

    【讨论】:

    • 这确实有效,但我忘了澄清我只想匹配整个单词。为 kung la 获取 TRUE,这应该是 FALSE
    • 将 A 列中的文本字符串用空格括起来(例如," "&a2&" " 以及分割的每一部分。参见上面的edit
    • 完美解决方案!
    【解决方案2】:

    另请参阅:

    =AND(ARRAYFORMULA(REGEXMATCH(A1,"(?i)"&SPLIT(B1,",")&"( |$)")))

    • (?i) - 不区分大小写
    • ( |$) - 空格或文本结尾,仅匹配整个单词。

    单元格 C1 的 ArrayFormula 变化:

    =ArrayFormula(TRANSPOSE(NOT(REGEXMATCH(QUERY(TRANSPOSE(filter(REGEXMATCH(A:A,"(?i)"&SPLIT(B:B,",")&"( |$)"),A:A<>"")),,10^99),"FALSE"))))
    

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多