Excel查找列表部分匹配

我有2张。

工作表1是工作表:

SONY KDL55W805CBAEP LED TV (Flat, 55 Zoll, FullHD, 3D, SMART TV, Android TV) SONY KDL75W855CBAEP LED TV (Flat, 75 Zoll, FullHD, 3D, SMART TV, Android TV) SONY KDL48W705CBAEP LED TV (Flat, 48 Zoll, FullHD, SMART TV) SONY KD43X8305CBAEP LED TV (Flat, 43 Zoll, UHD 4K, SMART TV, Android TV) SONY KDL50W756C LED TV (Flat, 50 Zoll, FullHD, SMART TV, Android TV) 

工作表2包含完整的型号参考号码:

 KDL55W805CBAEP KDL75W855CBAEP KDL48W705CBAEP KD43X8305CBAEP KDL50W756CBAEP 

我使用=IFERROR(LOOKUP(2^15;SEARCH(Sheet2!$B$1:$B$114;Sheet1![Row #]),Sheet2!$B$1:$B$114);"")

只要表单1中的文本是100%匹配的,所有内容都会匹配。 但是一旦不是,我就不会得到一场比赛。

例如。

第1页:

 SONY KDL50W756C LED TV (Flat, 50 Zoll, FullHD, SMART TV, Android TV) 

Sheet2中:

 KDL50W756CBAEP 

我怎样才能做到这一点?

编辑:

这是表1:

工作表Sheet1

这是表2:

所以在列item_model我想要完整的模型参考。 但是,由于并非所有表1中的引用与Sheet 2匹配都是100%,所以我有一个问题

Sheet2中

如果型号总是第二个“Word”,则使用此公式:

 =IFERROR(INDEX(Sheet2!B:B,MATCH(TRIM(MID("*" & SUBSTITUTE(B2," ",REPT(" ",99)),99,99)) & "*",Sheet2!B:B,0)),"") 

在这里输入图像说明


编辑:在荷兰,我想

 =ALS.FOUT(INDEX(Sheet2!B:B;VERGELIJKEN(SPATIES.WISSEN(MIDDEN("*" & SUBSTITUEREN(B2;" ";HERHALING(" ";99));99;99)) & "*";Sheet2!B:B;0));"") 

我可能有一些错别字或缺失)

 =IFERROR(INDEX($B$1:$B$6,IF(AGGREGATE(14,6,(ISNUMBER(SEARCH(C1,$A$1:$A$6))*ROW(A1:A6)),1),AGGREGATE(14,6,(ISNUMBER(SEARCH(C1,$A$1:$A$6))*ROW(A1:A6)),1),-1)),"not found") 

您将不得不更新范围以满足您的需求。

C1你在找什么。
第一个A1:A5你在找什么。
B1:B6你想要返回什么。
行(A1:A5)充当计数器,如果数据不在第一行,可能需要调整。

扔在一些错误生成和检查,如果您正在寻找的项目不在列表中。

概念验证

只要你正在search的内容不会太短,以至于在string开始后部分地被find。 如果你对自己的例子松了一口气,如果你为K开玩笑,它会抛出第6行的结果,因为在A6的文本中find了K

根据编辑

 =IFERROR(INDEX($B$1:$B$6,IF(AGGREGATE(14,6,(ISNUMBER(SEARCH(MID(C1,FIND(" ",C1)+1,FIND(" ",C1,FIND(" ",C1)+1)-FIND(" ",C1)-1),$A$1:$A$6))*ROW(A1:A6)),1),AGGREGATE(14,6,(ISNUMBER(SEARCH(MID(C1,FIND(" ",C1)+1,FIND(" ",C1,FIND(" ",C1)+1)-FIND(" ",C1)-1),$A$1:$A$6))*ROW(A1:A6)),1),-1)),"not found") 

这假定你正在search的东西总是在项目名称的第一个和第二个空间之间。