Excel可以这样用VLOOKUP函数
时间:2023-04-06 10:14:03
俗话说一个好汉三个帮一个篱笆三个桩,在函数中也是如此,有时候要发挥出函数的全部威力,就不可避免的要请出另外的一些函数来帮忙才行,例如函数中的大明星VLOOKUP函数,就有很多这样的好朋友…… 在介绍VLOOKUP的朋友们之前,让我们先来复习一下VLOOKUP的基本用法,例如要按照员工ID找出对应的姓名,就可以用公式=VLOOKUP(I2,A:B,2,0)来搞定。
在这个公式中,I2是要找的值,查找范围是A:B,要找的结果在第2列,使用了精确查找的方式。 相信对于这个基本用法,大家都能倒背如流了,以下就要结合一些更有难度的问题,为大家一一展示VLOOKUP的几个得力好友,第一个要出场的就是COLUMN。
有时候我们需要匹配多列数据,例如根据员工ID找到对应的姓名、所在部门和入职时间三条信息。
你当然可以在每一列单独使用VLOOKUP来匹配,但是也可以在COLUMN的帮助下用一个公式得到想要的结果,这个公式就是=VLOOKUP($I2,$A:$D,COLUMN(B1),0)。
因为分别使用三次VLOOKUP时,其实只有第三参数发生了变化,其他参数都是固定的,例如匹配姓名时第三参数是2,匹配部门时第三参数就顺延变成3。 而COLUMN(B1)的作用表面上来看是得到B1单元格的列号,右拉时就是C1单元格的列号,但这个结果正好可以让VLOOKUP找到正确的结果。 只是需要注意,VLOOKUP联合COLUMN时,第一参数要锁定列号,即为$I2,第二参数要绝对引用,否则右拉时就会出错。
2、不连续多列使用VLOOKUP
比前一种情况更复杂的就是,要得到的内容在源数据中不是连续的列,而且顺序也是乱的,例如要得到的结果依次是所在部门,姓名和员工类型。
这时候COLUMN就不适用了,需要另一个朋友MATCH来帮忙才行。 公式为:=VLOOKUP($I2,$A:$G,MATCH(J$1,$A$1:$G$1,0),0)
在这类问题中,变化的还是VLOOKUP的第三参数,但由于第三参数的数字出现并没有什么规律,因此就需要MATCH来进行一个定位,单独来看MATCH(J$1,$A$1:$G$1,0),结果正好就是我们要找的信息所在的列号。
VLOOKUP联合MATCH使用时同样要注意引用方式,$的用法在这里起到了关键的作用。 除了以上两种多列使用VLOOKUP的情况,还有一类比较特殊的情况,就是数据源分别在两个表格中。
3、数据源分布在两张表中,如何使用VLOOKUP
例如这种情况,财务部和行政部的人员名单是分开的。 公式=VLOOKUP($A2,财务部!$A:$G,MATCH(B$1,财务部!$1:$1,0),0)只能找出财务部的人员信息。
正常情况下,要筛选出错误值的数据,再针对行政部的员工数据,使用一次VLOOKUP。 但其实只要加入IFERROR这个函数,就可以一次性实现在两个数据源中使用VLOOKUP了。完整的公式是这样的: =IFERROR(VLOOKUP($A2,财务部!$A:$G,MATCH(B$1,财务部!$1:$1,0),0),VLOOKUP($A2,行政部!$A:$G,MATCH(B$1,行政部!$1:$1,0),0))
这个公式看起来比较长,但其实很简单,就是IFERROR(VLOOKUP(),VLOOKUP())这样的结构。 原理也很容易理解,当第一个VLOOKUP找不到的时候就会得到错误值,利用IFERROR的特性使得第二个VLOOKUP生效,从而实现了两个VLOOKUP的结合。
4、数据源分布在三张表中,如何使用VLOOKUP
上面说了在两张工作表中查询,如果还有更多张工作表呢?譬如第1张工作表是数学成绩、第2张工作表是语文成绩,第3张工作表是英语成绩,第4张工作表是物理成绩……现在要一并查出“包治百病”的语文、数学、英语、物理成绩,该怎么写公式呢?