VLOOKUP 函数跨工作表跨文件使用方式

今天在处理 Excel 文件的时候,需要使用 VLOOKUP 函数,感觉很方便。内心有一种掌握了一个小技巧就可以节省很多时间的骄傲感,同时,除了入门级别的使用,还进一步发现了可以跨工作表、跨文件使用这个函数,顿时觉得更加方便了。我觉得这个函数在日常工作中应该很常用,而且很好用,所以本文就记录这个函数的使用方式,以及简单介绍 Excel 中的函数概念。

本文中涉及的 Excel 文件已经被我上传至 GitHub,读者可以提前下载查看:Excel 示例文件 ,文件名为:学生表成绩表.xlsx

基础概念介绍

什么是函数

Excel 中,函数就是官方定义的一种通用公式,例如求和、求平均数、计数、查找,可以帮助用户方便快捷地处理数据。掌握了这些函数,用起来 Excel 才算是合格水平,有时候遇到难以处理的数据,可能使用几个公式就解决了。Excel 的基础功能就是存数据,然后基于这些数据再做进一步处理,此时为了方便高效,就产生了很多函数。

以下内容中提及的 函数 或者 公式 都是同一个概念。

函数的优点

各个行业的人使用 Excel 肯定有自己的感悟,以及觉得 Excel 某些函数特别好用,也就是可以说,一千个使用 Excel 函数的人眼里,有一千个函数的优点。我在这里只是泛泛地列举几个例子。

1、常用的四则运算函数完全可以替代计算器。

2、财务方面的函数可以帮助财务工作人员快速处理数据。

3、逻辑方面的函数可以处理一些简单的逻辑,即使用简单的函数脚本解决。

4、查找引用方面的函数,可以高效地进行搜索替换。

Excel 中可以看到常用的函数分类:
常用的函数分类

函数使用

先简单介绍一下求和函数【SUM】,以保证有个基本的认知。例如有一个 Excel 文件,有三列数字,分别是语文、数学、英语的成绩,现在需要计算每一行的第一列到第三列的和,求和结果放在第四列,也就是总成绩。

只要在第四列中,输入函数以及参数:

1
=SUM (A2:C2)

截图如下:
SUM 函数基本使用方式

其中,=SUM () 是函数名称,表示累加求和,括号里面的 A2:C2 是单元格的位置,: 表示从 A2C2,总结起来就是把第二行的 A 列到 C 列的值累加求和,得出结果。

按回车键,就会触发计算,得出结果,结果存放在写有函数的那个单元格。如果需要接着计算第三行、第四行、第五行,是不需要重复输入函数以及参数的,直接选中已经有结果的单元格,鼠标的光标放在单元格右下角,光标会变成一个黑色的十字,鼠标左键长按往下拖拽即可。

选中单元格,注意观察单元格右下角的大点
选中单元格

往下拖拽,自动计算
往下拖拽,自动计算

注意,使用复制下拉功能时,行号参数是会自动变化的,也就是说 每一行 的求和结果都是 当前行 的第一列到第三列的数值之和。可以任意选择一行的结果单元格,查看单元格的内容:
函数的行号自动变化

那这个是怎么做到自动化的呢?其实这是 Excel 自带的功能,术语称为 自动填充 ,不知道你有没有看到,在往下拖拽完成后,可以点开右下角的三角下拉列表,看到里面有三种模式选择,默认的就是 复制单元格 【你也可以试玩一下其它的两种模式】。 复制单元格 对于普通的单元格来说,直接复制内容,对于函数单元格来说,还会自动变更里面的参数。
函数结果自动填充

结果已经完全出来,可以正常使用。另外再说一个隐藏的注意点,这种通过函数产生的结果,是不能复制粘贴到别的地方使用的,因为复制粘贴过去的内容是函数公式,不是那个计算结果值。因此如果直接复制粘贴到别的地方,它还会用这个函数计算,得到的结果就与单元格数据当前所在的地方有关,结果肯定和以前不一样,或者根本没有结果。

例如我把总成绩和姓名这两列复制粘贴到别的 Excel 文件里面,可以看到得到的结果都是 0,这是因为通过函数计算得出的结果就是 0,表格的第一列到第三列根本没有值。
直接复制函数结果没有值

那怎么解决这个问题呢,其实方法是有的:复制时还是正常的复制函数,粘贴时不能默认了,要选择 粘贴为数值 ,或者 选择性粘贴 。这样,粘贴结果单元格里面就是真实的数值了,函数公式已经不见了。此时的单元格就是普通的单元格,里面是文本内容,可以随意复制粘贴使用。

粘贴为数值
粘贴为数值

选择性粘贴
选择性粘贴

接下来介绍本文的重点:VLOOKUP 函数。先提前说明, 工作表 就是指 Excel 文件中的 Sheet 概念,新建的 Excel 文件一般默认有 3 个 Sheet。以下内容基于两份数据:学生表、成绩表。

基本使用方式

VLOOKUP 是一个文本类型的函数,用来匹配搜索的。如果在单一的工作表中使用,例如根据姓名搜索总成绩,可以使用:

1
=VLOOKUP (H2,A:E,5,FALSE)

截图如下:
VLOOKUP 基本使用方式

其中,VLOOKUP 是函数名称,H2 表示需要查找的数据列,A:E 表示搜索的数据范围【此时不需要指定单元格的行号】,5 表示搜索命中的的结果列,5 一定是在 A:E 之间,FALSE 表示关闭模糊搜索,即精确搜索。这里总结起来就是根据 H2 的值,在 A:E 之间搜索【会搜索所有的行】,如果命中了结果,把 A:E 之间的命中那一行的第 5 列单元格【也就是 E 列】的值返回,搜索时使用精确匹配。

结合上面的截图,更通俗地说,就是根据 H2 的姓名,在成绩表 A:E 的所有行中搜索同姓名的人,把命中行 E 列的成绩返回,匹配姓名时必须完全相等才算命中。

也可以选中结果下拉,自动填充其他人的总成绩。

跨工作表使用

上面的内容是在同一个工作表中搜索,如果是跨工作表使用怎么办呢?,例如一个 Excel 文件有两个工作表:学生表、成绩表,现在要根据学生表的姓名从成绩表中搜索总成绩。

其实做法也是很简单,函数都是同一个函数,只不过在指定数据范围这个参数的时候,需要加上工作表的名称:

1
=VLOOKUP (A2, 成绩表!A:E,5,FALSE)

成绩表信息
成绩表信息

学生表信息
学生表信息

这里除了额外指定了参数 成绩表!A:E 来指定 成绩表 这个 Sheet,其它的参数仍旧与前面一致。

跨文件使用

接着又有问题了,如果两个表是分开两个文件呢,聪明人已经可以想到,肯定是继续更改参数的值:

1
=VLOOKUP (A2,[成绩表.xlsx] 成绩表!A:E,5,FALSE)

其中,[成绩表.xlsx] 成绩表!A:E 就是用来指定文件、工作表、数据列的。

但是这里需要同时打开两个文件,这样编辑器才能找到文件的内容。这里也可以看出来,为什么在 Excel 中不能同时打开两个同名的文件了,因为 Excel 要以文件名作为一份数据的唯一标识,哪怕两份同名的文件存放在不同的目录,也会被 Excel 当做同一份文件。

此外,还有一个小特性,只要函数生成完毕,就可以把成绩表关闭了,不会影响已经搜索出来的结果。而且,如果继续在学生表中增加姓名,还可以继续完成搜索,也就是说 Excel 是把成绩表做了缓存,可以一直使用。

虾丸派 wechat
扫一扫添加博主,进技术交流群,共同学习进步
永不止步
0%