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

Excel - Search an exact match within a string

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

这是现状:

  1. 在Sheet1,A列,我有一组字符串,如:

/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. 在Sheet2,A列,我有一组字符串如:

品牌=10177
品牌=12815
品牌=13
品牌=1396
品牌=11579

  1. 最后,在 sheet 1 中,B 列将是我的 "filter" 以及我正在努力寻找的公式。我的公式的目标是检测 sheet 1 中的任何字符串是否存在 sheet 2 中的字符串之一(完全匹配!)。事实上,现在它只能找到近似匹配。如您所见,第 5 行不应该 return 任何内容。但是用我目前的公式它确实如此。

公式如下:

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

对此事有什么想法吗?
请注意,我不想使用 VBA,宏,而只想使用公式。

非常感谢您的帮助!

我猜以下将解决您的问题:

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

基本上使用查找函数,我已经在“&”符号之间确定了字符串的开始和长度。并在 vlookup 中使用。

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

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

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

这个比较笼统一点,搜索标签有多少都没有关系。

然而,就目前而言,它将在第二个 sheet 中匹配 brand=13,在第一个 sheet 中匹配 brand=1396。为避免这种情况,您可以在搜索字符串中添加一个符号:-

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

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

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

这些都是数组公式