带有通配符的Vlookup对长值不起作用(部分string匹配)
我通过通配符来理解vlookup
的基本用法,但最近我遇到了一个问题。
我需要查找包含在单元格中的值作为string的一部分。 在下面的示例中,查找colC中的colA,并findcol D
,然后将col D
的值返回到col B
。
我使用=VLOOKUP("*"&A1&"*",C$1:D$2,2,0)
,它只适用于B1
。
为什么B2
& B3
不能以相同的方式工作? 任何解决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中值的末尾。