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

Matching only part of input string using VLOOKUP Excel

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

这就是我想要的:

Screenshot 1

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

例如,这行不通:

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

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

我怀疑构成你的数据的变化没有完全被你的例子覆盖,但我还是把它们打出来了。以下使用嵌套 IFERROR functions to return a row number from successive MATCH functions to an INDEX 函数的公式似乎足以涵盖您的样本数据。

=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(... 自己配对。