如何组合用于VLOOKUP的公式来搜索文本字符串中的部件号?

时间:2017-07-11 10:35:13

标签: excel excel-formula

我有一个与旧零件号组合的零件号列表 所以例如PN1234/XMS1234,XMS部件号是我需要的,字符串是不同的长度和不同的位置。 因此,我需要VLOOKUP来查找XMS部件号,并从具有正确部件号的其他电子表格中获取价格。

我现在通过使用文本到列来解决这个问题,但是在将来我认为这可以更快地解决。我尝试将MID和SEARCH以及LEN结合起来为我带来正确的零件编号长度,但没有一个是万无一失的。 我也试过

=vlookup(J2&"*",table array,index number,0) 

但这并没有真正发现任何东西。

感谢您提前提供任何帮助。

编辑:澄清问题的其他信息。 因此,如果你喜欢第1张图片,我已经突出显示了我试图进行vlookup搜索的部件号列表,第2页是我希望vlookup提取零售成本的表数组。

我按照=VLOOKUP(MID(J3,SEARCH("X",J3),?),table,13,0)的方式尝试了一个公式 但我无法弄清楚如何告诉MID公式需要返回多少个字符,因为如果xms部件号位于文本字符串的开头,那么如果我放了太多的文本字符串则会高数字。无论如何让MID停在/?

表1: Sheet 1 VLOOKUP problem

表2: Sheet 2 VLOOKUP problem

2 个答案:

答案 0 :(得分:1)

这个怎么样:

=IF(LEFT(A1,3)="XMS",LEFT(A1,SEARCH("/",A1)-1),RIGHT(A1,LEN(A1)-SEARCH("XMS",A1)+1))

如果字符串以XMS开头,那么从开头到/ /得到字符如果字符串不是以XMS开头那么得到/

之后的字符

因此PN1234/XMS1234生成XMS1234 XMS1234/PN1234生成XMS1234

您的数据还有其他格式吗?

答案 1 :(得分:0)

现在,由于上面给出的答案,并将其与公式ISNUMBER和SEARCH相结合,现在可以使用。 例如=IF(ISNUMBER(SEARCH("/",J2)),IF(J2="*/",J2,IF(LEFT(J2,3)="XMS",LEFT(J2,SEARCH("/",J2)-1),RIGHT(J2,LEN(J2)-SEARCH("XMS",J2)+1))),J2)

感谢所有帮助过的人。