使用VLOOKUP Excel仅匹配输入字符串的一部分

使用VLOOKUP Excel仅匹配输入字符串的一部分,excel,excel-formula,match,vlookup,partial,Excel,Excel Formula,Match,Vlookup,Partial,我在使用VLOOKUP搜索数组并将输入字符串的一部分与存储列匹配时遇到问题 这就是我想要的: 如您所见,我的输入列字符串包含存储在“存储数据”列中的字符串。但是我不能使用通配符,因为输入是长字符串 例如,这将不起作用: =VLOOKUP("*"&I3&"*";$H$3:$I$8;1;FALSE) 我也不认为我可以使用LEFT、RIGHT或MID,因为我不知道匹配字符串在输入字符串中的位置 我怀疑构成您的数据的变体并没有完全包含在您的示例中,但我还是把它们打印出来了。下面的公

我在使用VLOOKUP搜索数组并将输入字符串的一部分与存储列匹配时遇到问题

这就是我想要的:


如您所见,我的输入列字符串包含存储在“存储数据”列中的字符串。但是我不能使用通配符,因为输入是长字符串

例如,这将不起作用:

=VLOOKUP("*"&I3&"*";$H$3:$I$8;1;FALSE)

我也不认为我可以使用LEFT、RIGHT或MID,因为我不知道匹配字符串在输入字符串中的位置

我怀疑构成您的数据的变体并没有完全包含在您的示例中,但我还是把它们打印出来了。下面的公式使用嵌套函数将连续函数中的行号返回给函数,似乎足以覆盖示例数据

=INDEX(H:H, IFERROR(MATCH(I3,H:H, 0),
            IFERROR(MATCH(TRIM(LEFT(SUBSTITUTE(I3, " ", REPT(" ", 99)), 99)),H:H, 0),
            IFERROR(MATCH(TRIM(RIGHT(SUBSTITUTE(I3, " ", REPT(" ", 99)), 99)),H:H, 0),
            IFERROR(MATCH(TRIM(MID(SUBSTITUTE(I3, " ", REPT(" ", 99)), 99, 99)),H:H, 0), NA())))))
如果有助于理解公式,可以保留换行符。如果您有其他情况,您应该能够自己添加其他嵌套的IFERROR(MATCH(…pairs)


您必须将公式中的逗号改为分号。我第一次阅读时没有注意到您的系统使用分号。您好@Jeeped,谢谢您的解决方案!如果我理解正确,它在匹配字符串的任一侧寻找一个空格?因此输入字符串的任一侧都需要一个空格才能工作。正如您指出,如果有其他情况(如“:”),我可以添加其他IFERROR语句。不确定是否有其他方法可以解决此问题?您可能会感兴趣。