美文网首页精进ExcelOFFICE办公大法&PS资料
这才是王者,Vlookup函数在它面前都得黯然失色

这才是王者,Vlookup函数在它面前都得黯然失色

作者: 傲看今朝 | 来源:发表于2016-08-08 01:46 被阅读4518次

    我曾经参加过一次Excel的培训,主题专门讲函数应用的。当时我认为这一块算是我比较擅长的,应该没有什么要学习的(曾经的年少轻狂)。我之所以去是因为我把这当成了福利,因为可以在五星级酒店白吃白喝好几天。还记得是第一天的下午,老师正在讲解查找引用类的函数,我以一种不屑一顾的态度连珠炮似的抢先讲解了Vlookup函数,心想:“看你还有什么说的!”。结果老师不紧不慢的来了一句:“Vlookup函数的确是一种非常强大的查找引用函数。然而,这并非今天的重点,今天我们要讲的是查找引用类函数的王者:index函数。”我当时一下子懵了,Index函数是什么鬼?居然还是王者?!于是我仔细听了下去,深深地被这个函数的强大和灵活所折服,也为自己的无知和张狂感到无比羞愧……

    今天我就给大家解密一下这个函数,也算是对当时老师的致歉。

    Index函数是什么鬼?

    Index函数是Excel中一个非常实用强大的引用函数,它的目的就是引用特定单元格或单元格区域的值。Index函数总共有3个参数,分别是array,row_number以及Column number。公式详细如下:

    =Index(array,row_number,Column number)

    翻译成中文就是:=index(数据区域,(从上往下)第几行,(从做往右)第几列)

    举个例子,咱们在H4单元格输入:=index(A1:K22,4,3),它表达的意思就是选择一片区域A1:K22,然后从上往下数到第4行,再往右数到第3列,然后返回这个单元格(C4)的值:84,因此此公式返回的值为84。如下图:

    Index函数详解

    这就好比是说在平时生活中,你老婆喊你去取包裹:“喂,老公!你帮我到财经大学实验楼(数据区域)1楼(第几行)3单元(第几列)拿个包裹嘛。” 这个index是不是非常简单。我们再来看看几个例子吧。

    取某个区域第几行第几列交叉单元格的值

    说到这里相信大家对Index函数有了一个初步的认识,但是还远没有认识到这个函数的强大功能。在介绍index函数的强大功能之前,我得先说一说index的黄金搭档:match函数。如果没有它,Index就只能是Index函数,被扔在一个角落,永远不被人知晓了。

    Match函数是干什么的?

    一句话概括match函数的作用:返回一个数据在系列数据中的位置是第几行或者第几列的。它包括3个参数:

    lookup_value:某个内容(包括数值,文本等),实际工作中通常为单元格引用;

    Array:一系列的内容,通常为一行或者一列数据;

    Type:匹配类型,这里只涉及精确匹配,即第一个参数的内容必须要包含在第二个参数的“一系列内容“中,否则结果将出错。

    来,我们看一波具体的例子:

    我们如何快速得到着两个问题的答案呢?

    1.李晨位于A1:A22这个区域的第几行呢?用肉眼的话,你可以从A1一直往下数,数到“李晨”才停下,答案是18。但如果你想提高效率的话,就用match函数,输入一下的公式即可:=match("李晨",A1:A22,0)。这就是告诉Excel,我要你帮我看看,“李晨”这名字在“张华……张得能”这一串名字中是第几个,我们只需要告诉Excel“李晨”,以及那一串名字,以及告诉他,肯定有李晨这个人(匹配为0),它就自动帮助我去数数了。

    2.英语位于A1:D1这个区域的第几列?方法肯定是跟上面一样了。输入公式:=match("英语",A1:D1,0),敲回车即可。

    match函数就是这个样子的

    Match函数单独使用其实是没有什么用的,它的存在主要是为了给被人做嫁妆用得。而它最常出现在Vlookup函数和Index函数中,以Index尤甚。现在我们先来看看它是怎么给Vlookup做嫁妆的。match函数在Vlookup中主要是用于Vlookup的第三个参数,也就是确定列序号。这使得Vlookup函数着实灵活了不少,请看下面的例子咯。

    写好公式即可一键复制到选中的区域,而不用一个一个更改列序号了

    3.Vlookup中嵌套Match需重点关注的是引用的问题。

    Vlookup函数中的引用问题:用于是通过A列的到N1:S18中进行查找,因此第一个参数的列应该锁定。我们查找的区域永远都是N1:S18,公式复制时,不希望其变化,因此用绝对引用。

    match函数中的引用:我们想通过match函数返回G1:K1等5个单元格的值分别在N1:S1这个区域中的位置分别排第几位,因此区域N1:S1是固定的,因此绝对引用,而match函数只应用于列,因此行不能动,因此混合引用,将行锁住。我们查找的值在N1:S1这个区域一定是存在的,因此精确匹配,用0表示。

    注意:在Vlookup中嵌套match时,match里第二个参数的区域和Vlookup函数第二个参数的列数应该保持一致。

    废话不多说,大家看上面的例子慢慢琢磨去。

    Index为何需要match 这个黄金搭档呢?

    没有Match函数这个黄金搭档,Index函数不要说秒杀Vlookup了,想活下来都难。Index函数完胜Vlookup函数的一点就是,Vlookup函数有一个局限,那就是lookup_Value这一列的值必须要存在于Table_Array这个区域的最左边,否则一般会出错(当然你也可以写很复杂的函数,或者做一定的调整,那样不出错,不过很麻烦)。而使用index函数这不受此限制。我先来一波简单的index案例:

    上下左右随心所欲拖拽吧

    好,现在我们将G:K列全部已到移到姓名列的左边,那么我们的公式还有效吗?咱们试试:

    姓名列随便怎么放,结果都不会有变化

    最后我们也来看看Vlookup会是什么效果?

    当姓名列不放在最左侧时将会出错

    今天的内容就分享到这里,欢迎关注,欢迎支持。

    公众号或者其他自媒体平台转载请简信索取授权,否则视为侵权。谢谢!

    相关文章

      网友评论

      • 613bc645ab53:还好看得懂。
      • 愿你我都幸福:=index(绝对区域,要行锁列,要列锁行)
      • 惜雨静夕:后几张图表示看不清楚!😭
      • 爱狗狗的狗:赶脚好棒~赞:+1:
      • 7b76468bc7b4:又学了一招,感谢分享!
      • jdzhangxin:
        index(array,row_num,[column_num])
        总结一下
        返回引用特定单元格或单元格区域的值
        index(reference,row_num,[column_num],[area_num])

        返回一个数据在系列数据中的位置是第几行或者第几列的
        match(lookup_value,lookup_array,[match_type])
        傲看今朝: @jdzhangxin 精辟,很赞
      • BeauJiang:受教!
        有一个问题,绝对锁定的快捷键是什么啊
        BeauJiang:@傲看今朝 哈哈,谢谢:smile:
        傲看今朝: @BeauJiang F4
      • 072a387b6b3e:赞一个!
        记得刚毕业那会,老师苦口婆心地跟我们说:“我教你们的你们没学会不要紧,因为实际工作中可能也用不到,但OFFICE办公软件,你们最好弄熟一点,也好混口饭吃。”,当初我不以为然,想着办公软件有什么好学的,word不就是处理文档的吗?EXCEL不就是做表格的吗?等到出来工作后我才发现自己是彻底错了。
        傲看今朝: @汪非鸿 加油
      • 冯大力:有用啊
      • 二十一号:超级棒,谢谢分享。感恩

      本文标题:这才是王者,Vlookup函数在它面前都得黯然失色

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