我目前正在努力寻找可以解决我问题的公式。
以下是现状:
/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
品牌= 10177
品牌= 12815
品牌= 13
品牌= 1396
品牌= 11579
这是公式:
{=IFERROR(INDEX('Sheet 2'!$A$1:$A$5;MATCH(1;COUNTIF(A1;"*"&'Sheet 2'!$A$1:$A$5&"*");0));"")}
有关此事的任何想法?
请注意,我不想使用VBA,宏,只能使用公式。
非常感谢你的帮助!
答案 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))),"")
所有这些都是数组公式。