vlookup函数用法使用教程:新手完成第一张作品的方法

影视资讯5小时前发布 jdkjadmin
0 00
vlookup函数用法使用教程:新手完成第一张作品的方法

vlookup函数用法使用教程:新手完成第一张作品的方法

VLOOKUP 是电子表格里常见的查找函数。它可以根据一个已知值,在表格的第一列中查找对应行,再从这一行的其他列取回信息。比如,输入商品编码,自动填出商品名称和单价;输入员工编号,查出所属部门。本文从一张商品查询表开始,逐步说明 VLOOKUP 的写法、适用场景、容易出错的边界,以及如何检查结果。

先记住它的核心限制:VLOOKUP 只能在查找区域的最左列查找,并从这列向右返回结果。它不是模糊匹配的万能工具,也不是权限控制手段。把这两点放在心里,能避免不少误用。

一、先准备一张可以验证结果的表

打开 Excel 或 Google 表格,新建工作表。在 A1:C5 填入下面的数据。A 列是商品编码,B 列是名称,C 列是单价:

商品编码	商品名称	单价
P-101	无线鼠标	89
P-102	机械键盘	329
P-103	显示器支架	159
P-104	USB-C扩展坞	249

这里用制表符分隔数据。复制代码块内容后粘贴到表格中,通常会自动分列;如果没有分列,可使用表格软件的“分列”或“文本导入”功能。接着在 E1:G2 建立查询区:E1 写“查询编码”,F1 写“商品名称”,G1 写“单价”,E2 输入 P-103。

在 F2 输入下面的公式:

=VLOOKUP(E2,$A$2:$C$5,2,FALSE)

在 G2 输入:

=VLOOKUP(E2,$A$2:$C$5,3,FALSE)

正常情况下,F2 显示“显示器支架”,G2 显示 159。这就是第一张可用的查询表:改动 E2 的编码,名称和单价会跟着变化。

二、读懂 VLOOKUP 的四个参数

函数的通用形式是:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
  • lookup_value:要查找的值,例如上例中的 E2,也可以直接写一个文本或数字。
  • table_array:查找区域,例如 $A$2:$C$5。这个区域的最左列必须含有查找值。
  • col_index_num:从查找区域的最左列开始计数,要返回第几列。A:C 区域中,A 是第 1 列、B 是第 2 列、C 是第 3 列。
  • range_lookup:指定匹配方式。FALSE 表示精确匹配;TRUE 表示近似匹配。新手处理编号、名称等常规查询时,通常应明确写 FALSE。

方括号表示最后一个参数在语法上可以省略,但省略并不等于“精确匹配”。在 Excel 中省略时按近似匹配处理;为避免默认行为造成误查,建议明确写出 FALSE 或 TRUE。不同表格软件的兼容细节可能有所不同,跨软件使用时尤其不要依赖省略参数的行为。

本例中,$A$2:$C$5 两侧的美元符号表示绝对引用。复制公式时,区域仍固定在 A2:C5,不会滑动成 A3:C6。公式中的 E2 没有加美元符号,所以复制到其他行时可以随行变化。

三、精确匹配:大多数新手任务的首选

当编码、学号、订单号等必须完全相同才算匹配时,使用 FALSE:

=VLOOKUP(E2,$A$2:$C$5,2,FALSE)

精确匹配会查找与 E2 相等的内容;找到后,返回该行指定列的值。若没有找到,通常会返回 #N/A。精确匹配不要求查找列按字母或数字排序。

如果需要填充多行,例如 E2:E100 都有待查编码,可先在 F2 输入公式,再向下填充。由于查找区域已使用绝对引用,区域保持不变,E2 会依次变为 E3、E4 等。也可以把两条公式分别放进 F2 和 G2 后同时向下填充。

还可以用 IFERROR 给未找到的情况提供提示:

=IFERROR(VLOOKUP(E2,$A$2:$C$5,2,FALSE),"未找到该编码")

这能让报表更易读,但也可能把其他公式错误一并隐藏。若正在排查问题,先使用不带 IFERROR 的原始公式,确认结果正确后再决定是否添加提示。若要区分“确实未找到”和“区域或参数写错”等情况,也可使用表格软件提供的错误检查函数,而不要一味把所有错误改成空白。

四、近似匹配:适用于有序区间,不适合随手替代精确匹配

TRUE 表示近似匹配。对于数值查找,常见用法是查找一个区间的起始值,例如按累计金额确定折扣档位。制作这类对照表时,查找区域最左列通常应按升序排列。近似匹配会寻找不大于查找值的最大值;如果查找值小于最小档位,通常找不到合适结果。

例如,下面的表表示不同消费金额对应的折扣系数。A 列的档位必须从小到大排列:

消费金额起点	折扣系数
0	1
100	0.95
500	0.9
1000	0.85

假设这张表在 J1:K5,消费金额在 H2,可用下面的公式返回相应系数:

=VLOOKUP(H2,$J$2:$K$5,2,TRUE)

若 H2 为 620,公式会匹配不大于 620 的最大档位,即 500,并返回 0.9。若 H2 为 100,返回 0.95。若档位未升序排列,近似匹配可能给出错误结果,且不一定会提示错误;因此应检查排序和边界值。处理商品编码、身份证号或需要一字不差的分类时,不要为了“能返回结果”改用近似匹配。

五、VLOOKUP 的适用场景和能力边界

适合的场景

  • 根据唯一编号补全属性:用商品编码取名称和单价。
  • 把两份表格中的共同键对应起来:用员工编号查询部门或岗位。
  • 按有序阈值划分区间:在查找列升序排列的前提下,按金额、分数或数量档位返回结果。

不能忽略的限制

  • 只能向右返回。查找值必须位于查找区域的第一列,返回列也必须在它右边。若要向左取值,VLOOKUP 本身不适合。
  • 按列号返回,插列后要复核。列号是相对于查找区域的序号,不是工作表的绝对列号。插入或重排列后,即使公式仍可计算,返回列含义也可能变化。
  • 重复键只返回第一个匹配项。如果查找列有重复编码,精确匹配通常返回从上到下遇到的第一个匹配行,不会自动汇总所有记录。
  • 查找区域要包含返回列。如果区域只有 A:B,却把列号写成 3,通常会得到 #REF!。
  • 缺少查找值时不会自动猜测。精确匹配没找到通常返回 #N/A;这不一定代表公式坏了,也可能是源数据里确实没有该编码。

若需要从右向左查找,可考虑较新版本 Excel 中的 XLOOKUP,或使用 INDEX 与 MATCH 组合。函数是否可用取决于表格软件及版本;在需要兼容旧版本或其他软件时,应先确认目标环境支持的函数,不要直接假设所有接收者都能打开同一种公式。

六、常见错误:先检查数据,再检查公式

1. 返回 #N/A

确认查找值是否真的存在,是否有多余空格,是否有前导零,以及两边的数据类型是否一致。比如一边是数值 101,另一边是文本 "101",显示起来可能相同,但未必能作为同一个值精确匹配。商品编码、邮编等有前导零的编号,通常应按文本管理,否则前导零可能在录入时已被去掉。

可在旁边检查文本长度,或对确实存在空格问题的数据做清理。TRIM 可处理文本中的常见多余空格,但不同语言环境下对特殊空格字符的处理可能有限。不要只在公式里掩盖问题;最好在导入或整理数据时统一格式,并保留可核对的原始数据。

2. 返回 #REF!

检查第三个参数是否大于查找区域的列数。例如区域是 A:C,列号最多是 3;列号写成 4 就超出了区域。也要检查引用区域是否已被删除或改动。

3. 返回 #VALUE! 或公式不被接受

检查参数分隔符是否符合当前软件和区域设置。有些环境使用逗号,有些环境会要求分号。例如,软件若要求分号,下面的写法可能需要调整:

=VLOOKUP(E2;$A$2:$C$5;2;FALSE)

具体分隔符由软件及设置决定;可以先观察软件自动生成的公式格式。检查括号是否成对,以及函数名是否受当前语言或版本支持。

4. 结果看起来正确,其实查错了行

如果精确查找返回了意外结果,检查重复键、隐藏空格、数字与文本混用,以及查找区域是否选错。若使用近似匹配,还要检查第一列是否升序排列、数据类型是否一致,以及输入值是否落在设定区间。近似匹配出错时,结果可能是一个正常值而不是错误提示,因此要用边界值专门测试。

5. 向下复制后公式跑偏

确认查找区域是否需要绝对引用。常见写法是把区域写为 $A$2:$C$5,而把逐行变化的查找单元格保留为 E2。如果数据范围会增长,固定到第 5 行的区域也要相应扩展;可以按实际表格使用更大的范围、结构化表格引用或动态数组方案,但要考虑文件大小和目标软件兼容性。

七、通配符和文本查找要留意什么

在精确匹配模式下,查找值为文本时,* 和 ? 可用于通配:* 可代表任意多个字符,? 代表一个字符。要按字面查找星号或问号,可以在这些通配符前使用波浪号 ~ 转义。不同软件版本的具体行为应以其函数文档为准;若数据本身含有这些符号,最好用专门的小样本验证。

例如,若想用名称开头的一段文本进行通配查找,可以先在单元格中构造含通配符的查找文本,再交给 VLOOKUP。通配匹配不是安全过滤,也不能代替清洗或验证输入。若业务要求编码完全一致,直接使用完整编码和 FALSE,比使用通配符更稳妥。

八、做好一张可交付的查询表

公式能算出结果只是第一步。交付前可以按以下顺序检查:

  1. 检查键是否唯一。若商品编码应唯一,先检查重复值。重复键会让 VLOOKUP 只取第一条,容易造成价格或属性不一致。
  2. 统一数据类型。明确编号是文本还是数值,特别留意前导零、日期和从其他系统导入的数据。
  3. 验证三个案例。测试一个存在的编码、一个不存在的编码,以及一个边界值。近似匹配还要测试各档位的起点和起点下方的数值。
  4. 核对公式区域和列号。用一条已知记录手工对照源表,确认取回的是预期字段。
  5. 标明数据来源和更新时间。查询结果依赖源表;来源或更新时间不清楚,使用者可能把过期结果当成当前事实。
  6. 决定如何展示未匹配值。可以显示“未找到”,但应避免把所有错误无差别地隐藏成空白。

如果需要把公式结果定稿,可以在确认无误后复制结果,并使用“选择性粘贴为值”。这样结果不会再随源表变化。定稿前保存一份包含公式的副本,便于追溯计算过程。

九、公式与数据安全:不要把查找当成权限控制

VLOOKUP 只负责按规则取值,不会验证访问者身份,也不会给数据加密或限制读取权限。把敏感数据放在隐藏工作表里,再用 VLOOKUP 显示部分字段,并不能构成可靠的访问控制;能够获取或检查文件的人,可能仍然接触到源数据。需要限制访问时,应使用受管理的文件权限、数据系统的授权机制,或只向接收者提供其有权查看的数据副本。

从可信来源打开工作簿,并检查是否存在外部工作簿链接、宏或其他可执行内容。VLOOKUP 公式本身是查找公式,不是权限验证机制;添加 IFERROR、隐藏公式或保护工作表,也不能替代安全审查。共享前应确认文件内包含的源表、隐藏区域和历史数据都适合共享。

另一个容易混淆的风险发生在数据导出环节:如果把外部输入原样写入 CSV,再交由电子表格软件打开,以 = 等字符开头的内容可能被当作公式解释。这属于电子表格公式注入一类的输入处理问题,不是 VLOOKUP 的查找功能。对不可信文本进行导出时,应依据接收软件和业务规范处理、转义或拒绝危险格式,并避免把用户输入直接拼接成可执行公式。

十、记住这四句话就能开始使用

  • 要找的值放在查找区域最左列。
  • 返回列用相对于查找区域的序号计算。
  • 编号、名称等通常使用 FALSE 做精确匹配。
  • 只有第一列按升序整理的区间档位,才考虑使用 TRUE。

照着本文的商品表填入数据、建立查询区并写入两条公式,就能完成第一张 VLOOKUP 作品。之后遇到结果异常,依次核对匹配模式、查找区域、列号、数据类型和重复值。把这些边界检查做扎实,往往比记更多复杂写法更有用。

© 版权声明

相关文章