【问题标题】:Check range for string value existing in other range (with wildcards at either end)检查其他范围中存在的字符串值的范围(两端都有通配符)
【发布时间】:2020-06-05 12:11:44
【问题描述】:

我需要在一系列单元格中搜索字符串值。最初,我一直在将条件值硬编码到公式中并使用 COUNTIF,如下所示,如果文本字符串出现在搜索范围内的任何位置,它将返回值 TRUE。

=COUNTIF(A1:D1, "*VALUE1*") + COUNTIF(A1:D1, "*VALUE2*") + ... <0

但是,我需要搜索的标准值列表已经增加,并且对它们进行硬编码不再可行。我知道 COUNTIF 条件不能引用范围,并且需要通配符也很棘手。

有人知道任何巧妙的解决方案吗?

谢谢

【问题讨论】:

  • 你想把你的VALUEs放在一个单独的列吗???
  • 如果一个字符串包含 both VALUE1VALUE2 你的公式计算它两次,这就是你想要的吗??
  • 如果一个字符串同时包含两者,我只需要一个 TRUE 结果。如果字符串“xxxValue1”在我的搜索范围内,我也需要将其注册为 TRUE。

标签: excel excel-formula


【解决方案1】:

把我的帽子扔进去:

=OR(ISNUMBER(MATCH("*"&F1:F2&"*",A1:D1,0)))

根据版本,我需要在退出编辑模式时使用 Ctrl-Shift-Enter 而不是 Enter 来确认:

【讨论】:

    【解决方案2】:

    您可以尝试SUMPRODUCTSEARCH 功能:

    =SUMPRODUCT(--ISNUMBER(SEARCH($G$2:$G$3,$A$1:$D$1)))>0
    

    【讨论】:

    • 你弄错了参数 > =SUMPRODUCT(--ISNUMBER(SEARCH($G$2:$G$3,$A$1:$D$1))).唯一需要注意的是,如果D1 例如持有XVALUE1VALUE2X,它将计算两次。如果 OP 将其与0 进行比较,则没有任何问题,它应该可以正常工作。 +
    【解决方案3】:

    尝试以下方法:

    =SUMPRODUCT(COUNTIF(A1:D1,"*"&F1:F2&"*")) 
    

    F1:F2 使用条件引用您的范围。与other answer 一样,如果两个值都出现在一个单元格中,它们都将被计算在内。


    注意:如果您需要与 0 进行比较,只需使用 =SUMPRODUCT(COUNTIF(A1:D1,"*"&amp;F1:F2&amp;"*"))&gt;0 即可返回 TRUEFALSE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-27
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多