分享

有人说VLOOKUP函数很强大,这个函数笑而不语

 a83vylzxn5 2017-05-18


一:模糊匹配用法


这个是模糊匹配的典型应用案例,即某个数字区间返回一个固定的值。

重温一下如果用VLOOKUP函数实现:

=VLOOKUP(C2,$F$2:$G$4,2,1) 

找什么,在哪里找,返回第几列,最后一个值尤为重要(是1)


那如果使用LOOKUP函数如何实现呢?

方法一:

公式:=LOOKUP(C2,F1:G4)

这种使用方法是数组形式,Lookup第一个参数是要查找的内容。

第二个参数是一个区域(这个区域是行数大于等于列数),且这个区域的第一列必须从小到大排序。

这个函数的返回值就是矩形区域的最后一列。


如果第二个参数的区域列数大于行数,则和HLOOKUP的模糊匹配相同,在这里不做展开。

方法二:

公式:=LOOKUP(C2,F1:F4,G1:G4)

这种使用方法是向量形式,个人比较喜欢这种方法,接三个参数,第一个参数是找什么;第二个参数是以什么作为对比,这个必须是升序进行排列;第三个是返回什么。


小编观点:其实LOOKUP函数在模糊匹配上数组用法和VLOOKUP的模糊匹配没有什么差异,第二个向量用法会比VLOOKUP灵活一些,实战用处只大了那么一点点点。


二:精确匹配

案例要求使用名字查找对应的评分。

案例实现:

公式:=LOOKUP(1,0/(B2:B7=E2),C2:C7)

这个方法是比较巧妙的,所以需要各位朋友睁大双眼观看哈!

大家我们输入第一个参数找什么呢?

输入的是1,在哪里找呢,是用0除以姓名那一列等于中岛美嘉,第三个参数是填写返回什么值,我们把评分的那一列选中。

以上是函数的基本编写原则,接下来和大家分享函数的拆分原则和思路。

我们从内向外拆分,先拆分B2:B7=E2,这个是姓名那一列等于中岛美嘉,有前面VLOOKUP排错,大家也知道两个单元格相等判断,返回的是真假,这样子除了第三行数据外,其它的返回值都是false,只有中岛美嘉返回的是true。在Excel中,True等同于1,False等同于0。

用0除以True和False的数组,则0除以1的时候还是返回0,但是正常分母是不可以为0的,所以其他值返回的都是错误。

回归LOOKUP大函数,找什么呢,找1

在哪里找呢,发现第二个参数是个数组,除了数组中的第三位是0,其它都是报错的。

之前分享过,LOOKUP在这里就是模糊匹配用法,所以电脑只能认为第三行数据是电脑找到的,则返回了评分数组中的第三位,也就是5。


三:特殊用法

LOOKUP当然也有自己比较独特的应用,在这里分享一个案例:

返回最后一个文本或数值。

比如有些表格是有汇总求值的,我们想获得这个表的最后一行数据,怎么用LOOKUP函数实现呢?

公式:=LOOKUP('座座座',A:A,C:C)

这个是模糊匹配用法的变种,根据模糊匹配原则,第一个参数是查找什么,第二个参数是以什么作为对比,第三个参数是返回什么。


然后我讲第一个参数设置为一个足够大的文本,文本如何比对大小呢?是根据汉字转化为拼音进行对比,如座(zuo)的Z比汇(hui)的H大,所以座在汉字中是相对比较大的文字。


因为第一个参数“座座座”都比A列中的大,所以电脑只能返回最后一列数据对应C列的值了。


本文由公众号 阿凯的Excel 友情推荐

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多