王志军
在职场实战中,我们经常会遇到许多关于查找的操作,查找类的函数包括VLOOKUP、LOOKUP、MATCH等,用法也各不相同。这里举几个实例进行说明:
实例一:直接使用VLOOKUP函数
例如图1所示的工作表,现在要求根据工号在A:C列查找对应的职务,选择F2单元格,在编辑栏输入公式“=VLOOKUP(E2,A:C,3)”,这里的“3”表示A:C单元格区域的第3列,可以直接输入公式,也可以通过对话框按照提示逐一输入,公式执行效果如图2所示。
实例二:特殊字符的查询处理
图3所示的工作表就稍复杂了一些,A列的产品编号包含星号、折号等特殊字符,现在要求根据D列的产品编号查找对应的供货商,如果直接使用“=VLOOKUP(D2,A:B,2)”的公式,返回的却是不正确的查找结果或#N/A的错误值。
究其原因,是由于VLOOKUP函数将字符中的星号识别为通配符进行查询,例如产品编号“N42H19. 8*2.5”,被VLOOKUP函數识别为以“N42H19.8”打头、以“2.5”结尾的字符串;VLOOKUP函数有多个匹配结果时,只返回第一条的内容,因此无法精确查询到所需要的结果。
解决的办法并不复杂,我们可以利用等式中不支持通配符的特点,改用LOOKUP函数完成查询。在编辑栏输入公式“=LOOKUP(1,0/(D2=A:A),B:B)”,这里的LOOKUP函数的第二参数使用等式“D2=A:A”,直接比较D2单元格中的产品编号是否与A列的数据相同,避免了通配符造成的查询错误。
实例三:大小写的查询处理
如果数据源出现大小写的字符,那么LOOKUP函数也同样无法完成查询处理,此时需要搭配使用FIND函数。此时可以在编辑栏输入公式“=LOOKUP(1,0/FIND(D2,A:A),B:B)”。FIND函数可以返回D2单元格内容在A列中的起始位置,在本例中,如果A列的内容与D2单元格相同,则返回数字“1”,否则返回错误值#VALUE!;接下来使用0除以数字1和错误值,变成0和错误值;使用“1”作为查找值,在其中进行查找最后一个0的位置,并返回B列的供货商,最终结果如图5所示。