Excel - 搜索字符串中的完全匹配

时间:2015-01-20 11:30:01

标签: filter excel-formula lookup exact-match

我目前正在努力寻找可以解决我问题的公式。

以下是现状:

  1. 在工作表1的A栏中,我有一组字符串,例如:
  2. /search.action?gender=men&brand=10177&tag=10203&tag=10336
    /search.action?gender=women&brand=11579&tag=10001&tag=10138
    /search.action?gender=men&brand=12815&tag=10203&tag=10299
    /search.action?gender=women&brand=1396&tag=10203&tag=10513
    /search.action?gender=women&brand=11&tag=10001&tag=10073
    /search.action?gender=women&brand=1396&tag=10203&tag=10336
    /search.action?gender=women&brand=13

    1. 在表2的A栏中,我有一组字符串,例如:
    2. 品牌= 10177
      品牌= 12815
      品牌= 13
      品牌= 1396
      品牌= 11579

      1. 最后,在表1中,B列将是我的“过滤器”,其中我正在努力寻找公式。我的公式的目标是检测表1中的任何字符串中是否存在表2中的一个字符串(作为完全匹配!)。实际上,现在它只找到近似匹配。如您所见,第5行不应返回任何内容。但是根据我目前的配方,确实如此。
      2. 这是公式:

        {=IFERROR(INDEX('Sheet 2'!$A$1:$A$5;MATCH(1;COUNTIF(A1;"*"&'Sheet 2'!$A$1:$A$5&"*");0));"")}
        

        有关此事的任何想法?
        请注意,我不想使用VBA,宏,只能使用公式。

        非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

以下将解决您的问题:

=VLOOKUP(MID(A2,FIND("&",A2)+1,FIND("&",A2,FIND("&",A2)+1)-FIND("&",A2)-1),Sheet2!A:A,1,FALSE)

基本上使用find函数我已经在“&”之间确定了字符串的开头和长度。迹象。并在vlookup中使用。

另一点值得一提的是这个公式只是寻找前两个“&”迹象。

答案 1 :(得分:0)

为完整起见,这是另一种基于this answer

的解决方案
=INDEX(Sheet2!$A$1:$A$5,MAX(IF(ISERROR(FIND(Sheet2!$A$1:$A$5,A1)),-1,1)*(ROW(Sheet2!$A$1:$A$5)-ROW(Sheet2!$A$1)+1)))

这有点笼统,并没有多少搜索标签。

然而,就目前情况而言,第二张表中的品牌= 13与第一张表中的品牌= 1396相匹配。为避免这种情况,您可以在搜索字符串中添加&符号: -

=INDEX(Sheet2!$A$1:$A$5,MAX(IF(ISERROR(FIND(Sheet2!$A$1:$A$5&"&",A1&"&")),-1,1)*(ROW(Sheet2!$A$1:$A$5)-ROW(Sheet2!$A$1)+1)))

如果没有匹配,此公式会抛出#VALUE错误:要避免这种情况,您需要在其周围放置一个IFERROR语句: -

=IFERROR(INDEX(Sheet2!$A$1:$A$5,MAX(IF(ISERROR(FIND(Sheet2!$A$1:$A$5&"&",A1&"&")),-1,1)*(ROW(Sheet2!$A$1:$A$5)-ROW(Sheet2!$A$1)+1))),"")

所有这些都是数组公式。

enter image description here