带有通配符的Vlookup对长值不起作用(部分string匹配)

我通过通配符来理解vlookup的基本用法,但最近我遇到了一个问题。

我需要查找包含在单元格中的值作为string的一部分。 在下面的示例中,查找colC中的colA,并findcol D ,然后将col D的值返回到col B

我使用=VLOOKUP("*"&A1&"*",C$1:D$2,2,0) ,它只适用于B1

为什么B2B3不能以相同的方式工作? 任何解决scheme

样品:

样品

根据您对Axel的调查和评论,VLOOKUP不适用于超过255个字符的值。 解决方法是使用数组公式和SEARCH函数处理更长的值。 双击到单元格B1并粘贴此公式,然后按CTRL + SHIFT + ENTER保存它,而不是按Enter本身:

 =INDEX($D$1:$D$2,MATCH(TRUE,ISNUMBER(SEARCH(A1&",",$C$1:$C$2&",")),0)) 

如果您input正确,select单元格将在公式周围显示{花括号},并根据您的预期结果进行评估。

此公式首先创build一个数组searchC1:C2中每个单元格中A1的位置。 该数组将包含数字(findA1时)和错误(未findA1时)。

然后ISNUMBER创build一个TRUE(当发现A1时)和FALSE(当没有findA1时)

MATCH然后在数组中find第一个TRUE值。

INDEX然后从D1:D2返回相应的值。

编辑:公式现在searchA1中的值,然后是逗号。 这确保了完全匹配。 为了确保公式可以匹配列C中任何单元格中的最后一个值,逗号也会添加到列C中值的末尾。