Table of contents
今天我们将通过许多详细的分步实例来了解如何在Excel中使用VLOOKUP。 你将学习如何从另一个工作表和不同的工作簿中进行Vlookup,用通配符搜索,以及更多。
本文开始介绍VLOOKUP系列,它是最有用的Excel函数之一,同时也是最复杂和最不容易理解的函数之一。 我们将尝试用非常通俗的语言解释基础知识,使没有经验的用户尽可能容易学习。 我们还将提供涵盖Excel中VLOOKUP最典型用途的公式例子,并尝试使他们既有信息又有乐趣。
Excel VLOOKUP函数
什么是VLOOKUP? 首先,它是一个Excel函数:)它是做什么的? 它搜索你指定的值,并从另一列中返回一个匹配的值。 更为技术性的是,VLOOKUP函数在给定范围的第一列中查找一个值,并从另一列中返回同一行的一个值。
在其常见的用法中,Excel VLOOKUP根据唯一标识符搜索你的数据集,并为你带来与该唯一标识符相关的信息。
字母 "V "代表 "垂直",用于区分VLOOKUP和HLOOKUP函数,后者是在行而不是列中查找数值(H代表 "水平")。
该功能在Excel 365到Excel 2007的所有版本中都可用。
提示:在Excel 365和Excel 2021中,你可以使用XLOOKUP函数,它是VLOOKUP的一个更灵活和强大的继承者。
VLOOKUP语法
VLOOKUP函数的语法如下。
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup] )在哪里?
- 查询_价值 (required) - 是要搜索的值。
这可以是一个值(数字、日期或文本)、单元格引用(对包含查找值的单元格的引用)或由其他函数返回的值。 与数字和单元格引用不同,文本值应始终用 "双引号 "括起来。
- 表_数组 (required) - 是搜索查找值的单元格范围,并从中检索出一个匹配值。 VLOOKUP函数总是在表格阵列的第一列中搜索 ,其中可能包含各种文本值、数字、日期和逻辑值。
- Col_index_num (required) - 是要返回一个值的列的编号。 计数从表数组中最左边的列开始,即1。
- 范围_查询 (可选) - 决定是搜索近似匹配还是精确匹配。
- TRUE或省略(默认)--近似匹配。 如果没有找到精确的匹配,公式会搜索小于查找值的最大值。 需要将查找列按升序排序。
- FALSE - 完全匹配。 该公式搜索一个与查询值完全相等的值。 如果没有找到完全匹配的值,将返回一个#N/A值。
基本VLOOKUP公式
下面是一个Excel VLOOKUP公式的最简单的例子,请看一下下面的公式,并尝试将其 "翻译 "成英文。
=VLOOKUP("lion", A2:B11, 2, FALSE)
- 第1个参数( 查找_值 )清楚地表明,该公式查找了 "狮子 "一词。
- 第2个参数( 表_数组 考虑到搜索是在最左边一列进行的,你可以进一步解读上述公式:在A2:A11范围内搜索 "狮子"。 到目前为止,还不错,对吗?
- 第三个论点 col_index_num 意思是,我们想从B列返回一个匹配的值,这是表数组中的第二个。
- 第四个论点 范围查询 是FALSE,这表明我们正在寻找完全匹配。
在建立了所有的参数后,你阅读整个公式应该没有问题:在A2:A11中搜索 "狮子",找到一个完全匹配的,并从同一行的B列返回一个值。
为了方便起见,你可以在某个单元格中输入感兴趣的值,比如说E1,用单元格引用取代 "硬编码 "文本,然后让公式查找你在E1中输入的任何值。
=vlookup(e1, a2:b11, 2, false)
有什么不清楚的地方吗? 那就试试这样看吧。
如何在Excel中做一个Vlookup
在现实生活的工作表中使用VLOOKUP公式时,主要的经验法则是这样的。 锁定表阵列 用绝对的单元格引用(如$A$2:$C$11)来防止它在将公式复制到其他单元格时发生变化。
ǞǞǞ 查询值 在大多数情况下,应该是一个相对的参考(如E2),或者你可以只锁定列坐标($E2)。 当公式被复制到下一列时,参考会自动调整到每一行。
为了了解它在实践中的作用,请考虑下面的例子。 在我们的示例表中,我们又增加了一列,按速度对动物进行排名(A列),并希望找到世界上第1、第5和第10快的短跑运动员。 为此,在一些单元格(下面截图中的E2:E4)中输入查询排名,并使用以下公式。
要从B栏拉出动物名称。
=vlookup($e2, $a$2:$c$11, 2, false)
要从C列中提取速度。
=vlookup($e2, $a$2:$c$11, 3, false)
在F2和G2单元格中输入上述公式,选择这些单元格,并将公式拖到下面的行中。
如果你调查下一行的公式,你会注意到查找值参考已经为该特定行进行了调整,而表格数组却没有变化。
下面,你将得到一些更有用的提示,这些提示将为你节省大量的头痛和故障排除时间。
Excel VLOOKUP--要记住的5件事!
- VLOOKUP函数不能查看其左边的 它总是搜索在 最左栏 如果你需要从左边取值,使用INDEX MATCH(或Excel 365中的INDEX XMATCH)组合,可以不关心查找和返回列的位置。
- VLOOKUP函数是不区分大小写的 为了区分字母的大小写,可以使用区分大小写的VLOOKUP公式。
- 记住最后一个参数的重要性。 近似匹配时使用TRUE,精确匹配时使用FALSE。 完整的细节,请参见VLOOKUP TRUE vs. FALSE。
- 在搜索近似匹配时,要确保查询栏中的数据是按升序排序的。
- 如果没有找到查询值,将返回#N/A错误。 有关其他错误的信息,请参见《为什么Excel VLOOKUP不工作》。
Excel VLOOKUP实例
我希望垂直查找对你来说开始有点熟悉了。 为了加强你的知识,让我们再建立几个VLOOKUP公式。
如何在Excel中从另一个工作表进行Vlookup
在实践中,Excel VLOOKUP函数很少用于同一工作表中的数据。 大多数情况下,你必须从不同的工作表中提取匹配的数据。
要从不同的Excel工作表进行Vlookup,请将工作表的名称后面加上一个感叹号。 表_数组 例如,要在 Sheet2 的 A2:B10 范围内搜索,请使用此公式。
=VLOOKUP("Product1", Sheet2! A2:B10, 2)
当然,你不需要手动输入工作表的名称。 只需开始输入公式,当它出现在 表_数组 参数,切换到查找工作表,用鼠标选择范围。
例如,你可以这样在A2:A9的范围内查找A2的值。 价格 工作表,并从C列返回一个匹配的值。
=VLOOKUP(A2, Prices!$A$2:$C$9, 3, FALSE)
注意事项。
- 如果电子表格名称包含 空格或非字母字符 ,必须用单引号括起来,例如:'价格表'!$A$2:$C$9。
- 如果你对多个单元格使用VLOOKUP公式,记得要 锁定table_array 带$符号,如$A$2:$C$9。
如何在Excel中从另一个工作簿中Vlookup?
要从不同的Excel工作簿中进行Vlookup,请将工作簿的名称用方括号括起来放在工作表的名称前。
例如,以下是在名为A2的工作表上查找A2值的公式 价格 在 价格_列表.xlsx 工作簿。
=VLOOKUP(A2, [Price_List.xlsx]Prices! $A$2:$C$9, 3, FALSE)
如果工作簿名称或工作表名称包含空格或非字母字符,应像这样用单引号将其括起来。
=VLOOKUP(A2, '[价格表.xlsx]价格'!$A$2:$C$9, 3, FALSE)
制作一个指向不同工作簿的VLOOKUP公式的最简单方法是这样的。
- 打开这两个文件。
- 开始输入你的公式,切换到另一个工作簿,用鼠标选择表格阵列。
- 输入剩余的参数,然后按回车键,完成公式。
结果将看起来有点像下面的屏幕截图。
一旦你 关闭 如果你的查找表的文件被删除,VLOOKUP公式将继续工作,但它现在将显示关闭的工作簿的完整路径。
欲了解更多信息,请参见如何引用另一个Excel工作表或工作簿。
如何从另一个工作表中的指定范围进行Vlookup?
如果你打算在许多公式中使用同一个查找范围,你可以为它创建一个命名的范围,并直接在公式中输入名称。 表_数组 争论。
要创建一个命名的单元格,只需选择单元格并在下面的表格中输入你想要的名称。 命名 详细步骤请参见《如何在Excel中命名一个范围》。
在这个例子中,我们把名字定为 价格_2020 到查找表中的数据单元格(A2:C9),得到这个紧凑的公式。
=VLOOKUP(A2, Prices_2020, 3, FALSE)
Excel中的大多数名称适用于 整个工作簿 ,所以在使用命名范围时,你不需要指定工作表的名称。
如果命名的范围是在 另一本工作手册 ,把工作簿的名称放在范围名称之前,例如。
=VLOOKUP(A2, 'Price List.xlsx'! Prices_2020, 3, FALSE)
这样的公式更容易理解,不是吗? 此外,使用命名的范围可以很好地替代绝对引用。 由于命名的范围不会改变,你可以确信,无论公式被移动或复制到哪里,你的表数组都会保持锁定。
如果你已经将你的查找范围转换为一个全功能的Excel表,那么你可以根据表名做一个Vlookup,比如说 价格_表 在下面的公式中。
=VLOOKUP(A2, Price_table, 3, FALSE)
表引用,也被称为结构化引用,是有弹性的,对许多数据操作是免疫的。 例如,你可以在你的查找表中删除或添加新的行,而不用担心更新引用。
在VLOOKUP公式中使用通配符
像许多其他公式一样,Excel VLOOKUP函数接受以下通配符。
- 问号 (?)来匹配任何单个字符。
- 星号 (*)来匹配任何序列的字符。
事实证明,通配符在许多情况下真的很有用。
- 当你不记得你正在寻找的确切文本时。
- 当你在寻找一个属于单元格内容的文本字符串时。
- 当一个查询列包含前导或尾部空格时,在这种情况下,你可能会绞尽脑汁想知道为什么一个正常的公式不能工作。
例1.查询以某些字符开始或结束的文本
假设你想在下面的数据库中找到某个客户,你不记得这个姓氏,但你确信它以 "ack "开头。
要从A列返回姓氏,使用以下Vlookup通配符公式。
=VLOOKUP("ack*", $A$2:$B$10, 1, FALSE)
要从B列检索许可证密钥,请使用这个(区别仅在于列索引号)。
=VLOOKUP("ack*", $A$2:$B$10, 2, FALSE)
你也可以在某个单元格中输入名称的已知部分,例如E1,并将通配符与单元格引用相结合。
=VLOOKUP(E1& "*", $A$2:$B$10, 1, FALSE)
下面的屏幕截图显示了结果。
下面是一些带有通配符的VLOOKUP公式。
查找以 "儿子 "结尾的姓氏。
=VLOOKUP("*儿子", $A$2:$B$10, 1, FALSE)
获得以 "joh "开头,以 "son "结尾的名字。
=VLOOKUP("joh*son", $A$2:$B$10, 1, FALSE)
拉出一个5个字符的姓氏。
=vlookup("?????", $a$2:$b$10, 1, false)
例2.基于单元格值的VLOOKUP通配符
从前面的例子中,你已经知道可以将安培号(&)和单元格引用连接起来,组成一个查找字符串。 要查找一个在任何位置包含给定字符的值,可以在单元格引用前后加一个安培号。
比方说,你希望得到与某个许可证密钥相对应的名称,但你不知道整个密钥,只知道几个字符。 密钥在A列,名称在B列,目标密钥的一部分在E1,你可以用这种方式做通配符Vlookup。
提取钥匙。
=VLOOKUP("*"&E1& "*", $A$2:$B$10, 1, FALSE)
提取名称。
=VLOOKUP("*"&E1& "*", $A$2:$B$10, 2, FALSE)
注意事项。
- 为了使通配符VLOOKUP公式正确工作,请使用精确匹配(FALSE是最后一个参数)。
- 如果找到一个以上的匹配,将返回第一个匹配。 .
VLOOKUP TRUE vs FALSE
现在,是时候仔细看看Excel VLOOKUP函数的最后一个参数了。 虽然是可选的,但 范围查询 参数非常重要,根据你选择TRUE还是FALSE,你的公式可能产生不同的结果。
Excel VLOOKUP精确匹配(FALSE)。
如果 范围查询 如果设置为FALSE,Vlookup公式会搜索一个与查询值完全相等的值。 如果找到两个或更多的匹配值,则返回第1个。 如果没有找到完全匹配的值,则发生#N/A错误。
Excel VLOOKUP近似匹配(TRUE)。
如果 范围查询 如果设置为 "true "或省略(默认),该公式将查找最接近的匹配值。 更准确地说,它首先搜索一个完全匹配的值,如果没有找到完全匹配的值,则查找小于查找值的下一个最大值。
近似匹配的Vlookup工作时有以下注意点。
- 查询的列必须在 升序 ,从最小到最大,否则可能找不到一个正确的值。
- 如果查询值小于查询数组中的最小值,将返回#N/A错误。
下面的例子将帮助你更好地理解精确匹配和近似匹配的Vlookup之间的区别,以及每种公式在什么时候使用最好。
例1.如何做一个完全匹配的Vlookup
如果要查询完全匹配,只需在最后一个参数中填入FALSE。
在这个例子中,让我们把动物速度表,交换列,并尝试找到每小时能跑80、50和30英里的动物。 用D2、D3和D4中的查找值,在E2中输入下面的公式,然后向下复制到另外两个单元格。
=vlookup(d2, $a$2:$b$12, 2, false)
正如你所看到的,公式在E3中返回 "Lion",因为他们每小时正好运行50次。 对于其他两个查询值,没有找到完全匹配的,并且出现#N/A错误。
例2.如何用Vlookup来进行近似匹配
要查询一个近似的匹配,有两件必要的事情需要做。
- 将第一列的 表_数组 从最小的到最大的。
- 使用TRUE来表示 范围查询 参数或省略它。
对查找列进行排序是非常重要的,因为VLOOKUP函数一旦发现比查找值小的近似匹配就会停止搜索。 如果数据排序不当,你可能最终会出现非常奇怪的结果或一堆#N/A错误。
对于我们的样本数据,一个近似的匹配Vlookup公式如下。
=vlookup(d2, $a$2:$b$12, 2, true)
并返回以下结果。
- 对于查询值 "80","Cheetah "被返回,因为它的速度(70)是小于查询值的最接近的匹配。
- 对于查询值为 "50",将返回一个完全匹配的结果(Lion)。
- 对于一个查询值 "30",会返回一个#N/A的错误,因为查询值小于查询列中的最小值。
Excel中Vlookup的特殊工具
毫无疑问,VLOOKUP是最强大、最有用的Excel函数之一,但它也是最令人困惑的函数之一。 为了使学习曲线不那么陡峭,体验更愉快,我们在Excel的终极套件中包含了几个节省时间的工具。
VLOOKUP向导--编写复杂公式的简单方法
交互式VLOOKUP向导将引导你完成配置选项,为你指定的标准建立一个完美的公式。 根据你的数据结构,它将使用标准的VLOOKUP函数或一个可以从左边拉出数值的INDEX MATCH公式。
要获得你的定制配方,你需要做的是这个。
- 运行 "VLOOKUP向导"。
- 选择你的主表和查询表。
- 指定以下栏目(在许多情况下,它们会被自动选中)。
- 关键栏目 - 你的主表中包含要查询的值的列。
- 查询栏 - 仰望柱子。
- 返回栏目 - 检索值的列。
- 点击 插入 按钮。
下面的例子展示了该向导的操作。
标准Vlookup
当查询列( 动物 )是查找表中最左边的一列,一个正常的精确匹配的VLOOKUP公式被插入。
Vlookup到左边
当查找栏( 动物 )是在返回栏的右侧( 速度 ),向导会在Vlookup中插入一个INDEX MATCH公式,从右到左。
额外奖励! 由于巧妙地使用了单元格引用,公式可以被复制或移动到任何一列,而不需要你更新引用。
合并两个表--无公式替代Excel VLOOKUP
如果你的Excel文件巨大而复杂,项目的最后期限迫在眉睫,而你正在寻找一个可以向你伸出援手的人,那就试试合并表向导吧。
这个工具是我们对Excel的VLOOKUP功能的可视化和无压力的替代,它是这样工作的。
- 选择你的主桌。
- 选择查询表。
- 选择一个或几个普通列作为唯一的标识符。
- 指定要更新哪些列。
- 可选地,选择要添加的列。
- 让合并表向导有几秒钟的处理时间......然后享受结果 :)
这就是如何在Excel中使用VLOOKUP的基本方法。 在我们教程的下一部分,我们将讨论高级VLOOKUP的例子,教你如何Vlookup多个标准,返回所有匹配或第N次出现,执行双重Vlookup,用一个公式在多个工作表上查找,等等。 感谢你的阅读,希望下周见到你!
可用的下载
Excel VLOOKUP公式示例(.xlsx文件)。
终极套房14天全功能版(.exe文件)