Vlookup与通配符不起作用(部分字符串匹配)长值

时间:2017-09-05 04:53:59

标签: excel wildcard vlookup

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

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

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

为什么B2& B3不能以同样的方式运作?任何解决方案?

样品:

Sample

1 个答案:

答案 0 :(得分:0)

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

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

如果输入正确,选择单元格将在公式周围显示{花括号},它应该评估为您想要的结果。

该公式首先创建一个数组,搜索C1:C2中每个单元格中A1的位置。该数组将包含数字(当找到A1时)和错误(当找不到A1时)。

ISNUMBER然后创建一个TRUE数组(当找到A1时)和FALSE(当找不到A1时)

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

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

编辑:公式现在搜索A1中的值,后跟逗号。这确保了完全匹配。为了确保公式可以与C列中任何单元格中的最后一个值匹配,还会在C列的值末尾添加逗号。