美文网首页小陌教你Excel职场菜鸟成长记上班这点事儿
挖掘Vlookup函数那些不为大众所知的事之二

挖掘Vlookup函数那些不为大众所知的事之二

作者: Dawsondx | 来源:发表于2017-11-04 20:10 被阅读29次

    咱们接着上一篇没说完的部分说,上一篇我们提到,从以下几个方面来深入挖掘Vlookup函数:易错点、局限性、巧妙应用。

    挖掘Vlookup函数那些不为大众所知的事之一

    由于篇幅原因只写了前面两点,那么这篇讲的便是Vlookup函数的第三点——巧妙应用。通过对于Vlookup函数的巧妙应用,我们可以很大程度上的提高效率节省时间。本篇提出三点巧妙应用。

    一、巧用模糊匹配实现自动返回数据对应范围的结果

    如果我们需要根据每个人的成绩和成绩-等级对应表来得出他对应的等级评分,我们第一反应是什么?IF函数?

    =IF(C3<60,"不合格",IF(C3<80,"合格",IF(C3<90,"良好","优秀")))

    这样可太麻烦了,嵌套三个IF函数。

    其实这里直接用Vlookup函数就好,不过前提是成绩对照表中,成绩在第一列,且成绩必须按照从低到高排序。

    再来看这公式:=VLOOKUP(C3,$G$4:$H$7,2,TRUE)

    怎么样,是不是瞬间清爽多了?比if函数方便快捷多了。当然,这里需要注意的是:

    成绩对照表中,成绩在第一列,且成绩必须按照从低到高排序。
    成绩对照表中,成绩在第一列,且成绩必须按照从低到高排序。
    成绩对照表中,成绩在第一列,且成绩必须按照从低到高排序。

    二、利用通配符实现模糊匹配

    在这里我们先顺便讲讲通配符。通配符有【*】、【?】两种,星号代表任意多个字符或者字符串,问号代表任意单个字符。若是一个数据中本身包含通配符本身,而恰好我们需要查找通配符本身呢,就在前面加上一个【~】符号,即【~?】可以代表问号本身。

    我们在匹配时,有时候会发现查找的值是简称,而我们数据源是全称,这样普通方法去Vlookup查找值肯定是匹配不到的。而如果用Vlookup函数的模糊匹配呢,那可太不靠谱了,绝对会一堆牛头不对马嘴。那么此时我们就可以通过通配符来帮助我们实现了。

    假设原公式是:

    =VLOOKUP(A2,$E$2:$F$21,2,FALSE)

    那么此时加上通配符就是:

    =VLOOKUP("*"&J3&"*",$E$2:$F$21,2,FALSE)�

    这样我们就可以借助于通配符,用精确匹配来实现模糊匹配,准确度高。

    三、巧用函数变量代替第三个参数,实现多列数据的自动查找匹配

    如果像下图这样需要匹配很多列结果呢?

    B列写=VLOOKUP($A2,$H$2:$L$21,2,FALSE)

    C列写=VLOOKUP($A2,$H$2:$L$21,3,FALSE)

    D列写=VLOOKUP($A2,$H$2:$L$21,4,FALSE)

    ……

    太麻烦了。

    我们发现,上面这些公式只是第三个参数有变化,2依次递增到5。那么我们就可以利用列的变化这个变量来替代这第三个参数。于是公式可以一次性写为:

    B2=VLOOKUP($A2,$H$2:$L$21,COLUMN(),FALSE)

    然后往右、往下拉填充公式即可。

    其中第三个参数COLUMN(),代表当前单元格所在的列数。我们也可以写为COLUMN(B1),代表B1单元格所在的列数。

    那么这里再加一点难度,如果我们查询的结果字段不是按照数据源的字段顺序的呢?如下图:


    很明显,这样就不能那么简单的用COLUMN函数替代第三个参数了。那么怎么处理呢?我们可以用另一个匹配函数来代替,那就是MATCH函数,没错,上一篇文章刚讲到过的。

    用MATCH函数来查找返回该字段在数据源区域的第几列,以此来作为Vlookup函数的第三个参数,这样就完美解决啦!

    MATCH函数写为:MATCH(B1,$H$1:$L$1,0),计算结果为4

    代表B1单元格的【城市】字段在我们数据源区域的第4列。将这个函数替代我们Vlookup函数的第三个参数,那么完整的就是:

    =VLOOKUP($A2,$H$1:$L$21,MATCH(B1,$H$1:$L$1,0),FALSE)

    咦?问题来了,为什么下面的都是错误值?

    思考下

    原来是MATCH函数的第一个参数B1,忘记给数字1,第一行加上绝对引用,所以下拉就变成了B2,B3……,这样自然不对啦。

    修改为=VLOOKUP($A2,$H$1:$L$21,MATCH(B$1,$H$1:$L$1,0),FALSE)

    即可!注意下图公式编辑栏中划红线部分的绝对引用相对引用的差异。

    其中第一个划红线的部分,是Vlookup函数的第一个参数——查找值。为了避免公式右拉填充时查找对象偏移到B列、C列,故需对列进行绝对引用,所以是$A2;

    第二个划红线的部分,是MATCH函数的第一个参数——查找值。是为了找出所需要的字段在目标区域范围内的第几列,在这里要使公式下拉时查找的仍为第一行的字段,故需对行进行绝对引用,所以是B$1。

    好啦,关于Vlookup函数那些不为大众所知的事写到这里就算告一段落了。后续我会接着写Lookup函数的用法案例解析,大家有兴趣可以来我的文集看看~

    相关文章

      网友评论

        本文标题:挖掘Vlookup函数那些不为大众所知的事之二

        本文链接:https://www.haomeiwen.com/subject/wrfqmxtx.html