Excel查找列表部分匹配

时间:2016-05-12 20:05:50

标签: 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);"")

只要Sheet 1中的文字是100%匹配,所有内容都会匹配。 但是,如果不是,我就不会得到匹配。

例如。

表1:

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

Sheet 2中:

KDL50W756CBAEP

我怎样才能进行这些比赛呢?

编辑:

这是第1页:

Sheet1

这是第2页:

所以在专栏item_model中,我想要完整的模型参考。 但由于并非Sheet 1中的所有参考文献都与Sheet 2完全匹配,因此我遇到了问题

Sheet2

2 个答案:

答案 0 :(得分:3)

如果型号始终是第二个" Word":

,请使用此公式
=IFERROR(INDEX(Sheet2!B:B,MATCH(TRIM(MID("*" & SUBSTITUTE(B2," ",REPT(" ",99)),99,99)) & "*",Sheet2!B:B,0)),"")

enter image description here

编辑:在荷兰语中,我认为

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

我可能有一些拼写错误或遗失)

答案 1 :(得分:2)

=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)充当计数器,如果您的数据不在第一行,可能需要调整。

抛出一些错误并检查您要查找的项目是否在列表中。

proof of concept

只要您搜索的内容不会在字符串开头后部分找到,就会有效。如果你在我的例子中徘徊,如果你去了K,它将会从第6行中得到结果,因为在A6的文本中找到了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")

这假设您要搜索的内容始终位于项目名称的第一个和第二个空格之间。

相关问题