我理解vlookup
与通配符的基本用法,但我最近遇到了问题。
我需要查找包含在单元格中的值作为字符串的一部分。在下面的示例中,我在colC中查找colA,应该找到,然后将col D
中的值返回到col B
。
我使用=VLOOKUP("*"&A1&"*",C$1:D$2,2,0)
,它仅适用于B1
。
为什么B2
& B3
不能以同样的方式运作?任何解决方案?
样品:
答案 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列的值末尾添加逗号。