在excel中如何用VLOOKUP进行模糊查找

作者:iamlaosong

该函数的语法规则如下:

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    参数           简单说明                                输入数据类型

lookup_value       要查找的值                             数值、引用或文本字符串

table_array          要查找的区域                          数据表区域

col_index_num    返回数据在区域的第几列数    正整数

range_lookup      匹配方式                                 TRUE(或不填)、FALSE

使用此函数时,最后一个参数一般都填0(FALSE),表示精确匹配,如果找不到,则返回错误值 #N/A。如果填1,则表示模糊匹配,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。

不过这个模糊匹配有个前提,就是查找区域中第一列必须排序,还必须是升序,否则结果不可预料。

此外,这种查找是从第一个字符开始比较,也不存在什么通配符,所以类似“安徽邮政速递物流公司”通过“邮政速递”是没有办法匹配到的,但是“安徽邮政”倒是可能的。

和这个函数有点类似的函数是MATCH,差别是前者返回单元格的值,后者返回单元格的位置。

这个模糊查询用起来麻烦,返回值也不太靠谱,所以我认为,除了一些特殊的场合,这个模糊查询功能基本没啥用处。

那是不是就没有办法了呢,办法还是有的,那就是用“通配符+精确匹配”方法。

还是上述例子,用“*邮政速递*”还是可以匹配到“安徽邮政速递物流公司”这个值的,如果是单元格的值,则用连接符&连接*号,例如在sheet2的A列模糊匹配A1单元格的值,匹配后取回C列值:

   =VLOOKUP("*"&A1&"*",Sheet2!A:C,3,0)

 需要注意的是,返回的是第一个符合匹配的结果。match函数也有类似功能。例如:

  =MATCH("*"&A1&"*",Sheet2!A:A,0)

返回的是匹配位置,注意,位置是区域内的相对位置,比如A10:A100,A10就是第一个位置。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值