Filter Excel-搜索字符串中的精确匹配项

Filter Excel-搜索字符串中的精确匹配项,filter,excel-formula,lookup,exact-match,Filter,Excel Formula,Lookup,Exact Match,我目前正在努力寻找解决我问题的方法 现状如下: 在第1页的A列中,我有一组字符串,例如: /search.action?性别=男性&品牌=10177&tag=10203&tag=10336 /search.action?性别=女性&品牌=11579&tag=10001&tag=10138 /search.action?性别=男性&品牌=12815&标签=10203&标签=10299 /search.action?性别=女性&品牌=1396&tag=10203&tag=10513 /search.

我目前正在努力寻找解决我问题的方法

现状如下:

  • 在第1页的A列中,我有一组字符串,例如:
  • /search.action?性别=男性&品牌=10177&tag=10203&tag=10336
    /search.action?性别=女性&品牌=11579&tag=10001&tag=10138
    /search.action?性别=男性&品牌=12815&标签=10203&标签=10299
    /search.action?性别=女性&品牌=1396&tag=10203&tag=10513
    /search.action?性别=女性&品牌=11&tag=10001&tag=10073
    /search.action?性别=女性&品牌=1396&tag=10203&tag=10336
    /搜索。行动?性别=女性&品牌=13

  • 在第2页A列中,我有一组字符串,例如:
  • 品牌=10177
    品牌=12815
    品牌=13
    品牌=1396
    品牌=11579

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

    {=IFERROR(INDEX('Sheet 2'!$A$1:$A$5;MATCH(1;COUNTIF(A1;"*"&'Sheet 2'!$A$1:$A$5&"*");0));"")}
    
    对这件事有什么想法吗?
    请注意,我不想使用VBA、宏,而只想使用公式。


    非常感谢你的帮助

    我想以下内容可以解决您的问题:

    =VLOOKUP(MID(A2,FIND("&",A2)+1,FIND("&",A2,FIND("&",A2)+1)-FIND("&",A2)-1),Sheet2!A:A,1,FALSE)
    
    基本上,通过find函数,我已经确定了“&”符号之间字符串的开始和长度。并在vlookup中使用


    另一点要提到的是,这个公式只寻找前2个“&”符号。

    为了完整性,这里有另一个基于

    这是一个更一般的,无论有多少搜索标签

    然而,从目前的情况来看,它将在第二张纸上匹配brand=13,在第一张纸上匹配brand=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)))
    
    如果没有匹配项,此公式将抛出一个#值错误:为避免此情况,需要在其周围放置一条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))),"")
    
    这些都是数组公式


    听起来你好像在把公式放在表1中,然后搜索表2,但如果是这样,我无法理解你的公式。请你澄清一下好吗?当然可以。让我们一排一排地看吧。公式在B1中。我想在A1中查找表2中是否存在任何字符串,然后显示哪一个字符串(在A1中)。您是指表1吗!B1和表1!A1?如果是这样的话,我的问题是你的公式在任何地方都没有引用Sheet2,因此它无法将A1中的字符串与Sheet2中以“brand=10177”开头的字符串进行比较。噢,该死。。。事实上你是对的。。。我编辑我的帖子…很好!这似乎奏效了!我只是在开头添加了一个IFERROR,以避免出现“N/a”。谢谢!没问题。祝你今天愉快:)嗨,汤姆,谢谢你的意见。我试过了,但是没有达到预期的效果。Dubison的答案完美地解决了我的问题。好吧,@Dubison的答案很好,我给了+1。我将包括一个屏幕截图,虽然只是为了表明我的工作。
    =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))),"")