Excel VLOOKUP函数教程与公式实例

  • Share This
Michael Brown

今天我们将通过许多详细的分步实例来了解如何在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件事!

    1. VLOOKUP函数不能查看其左边的 它总是搜索在 最左栏 如果你需要从左边取值,使用INDEX MATCH(或Excel 365中的INDEX XMATCH)组合,可以不关心查找和返回列的位置。
    2. VLOOKUP函数是不区分大小写的 为了区分字母的大小写,可以使用区分大小写的VLOOKUP公式。
    3. 记住最后一个参数的重要性。 近似匹配时使用TRUE,精确匹配时使用FALSE。 完整的细节,请参见VLOOKUP TRUE vs. FALSE。
    4. 在搜索近似匹配时,要确保查询栏中的数据是按升序排序的。
    5. 如果没有找到查询值,将返回#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公式的最简单方法是这样的。

    1. 打开这两个文件。
    2. 开始输入你的公式,切换到另一个工作簿,用鼠标选择表格阵列。
    3. 输入剩余的参数,然后按回车键,完成公式。

    结果将看起来有点像下面的屏幕截图。

    一旦你 关闭 如果你的查找表的文件被删除,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公式。

    要获得你的定制配方,你需要做的是这个。

    1. 运行 "VLOOKUP向导"。
    1. 选择你的主表和查询表。
    2. 指定以下栏目(在许多情况下,它们会被自动选中)。
      • 关键栏目 - 你的主表中包含要查询的值的列。
      • 查询栏 - 仰望柱子。
      • 返回栏目 - 检索值的列。
    3. 点击 插入 按钮。

    下面的例子展示了该向导的操作。

    标准Vlookup

    当查询列( 动物 )是查找表中最左边的一列,一个正常的精确匹配的VLOOKUP公式被插入。

    Vlookup到左边

    当查找栏( 动物 )是在返回栏的右侧( 速度 ),向导会在Vlookup中插入一个INDEX MATCH公式,从右到左。

    额外奖励! 由于巧妙地使用了单元格引用,公式可以被复制或移动到任何一列,而不需要你更新引用。

    合并两个表--无公式替代Excel VLOOKUP

    如果你的Excel文件巨大而复杂,项目的最后期限迫在眉睫,而你正在寻找一个可以向你伸出援手的人,那就试试合并表向导吧。

    这个工具是我们对Excel的VLOOKUP功能的可视化和无压力的替代,它是这样工作的。

    1. 选择你的主桌。
    2. 选择查询表。
    3. 选择一个或几个普通列作为唯一的标识符。
    4. 指定要更新哪些列。
    5. 可选地,选择要添加的列。
    6. 让合并表向导有几秒钟的处理时间......然后享受结果 :)

    这就是如何在Excel中使用VLOOKUP的基本方法。 在我们教程的下一部分,我们将讨论高级VLOOKUP的例子,教你如何Vlookup多个标准,返回所有匹配或第N次出现,执行双重Vlookup,用一个公式在多个工作表上查找,等等。 感谢你的阅读,希望下周见到你!

    可用的下载

    Excel VLOOKUP公式示例(.xlsx文件)。

    终极套房14天全功能版(.exe文件)

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.