📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第13章-VLOOKUP函数-练习.xlsx
难度:⭐⭐⭐ | 建议用时:50 分钟 | 前置知识:绝对引用($)、第07章 IFERROR
本章学习目标
- 会用 VLOOKUP 根据"关键字"从表中查出对应信息
- 分清精确匹配(FALSE)和模糊匹配(TRUE)两种模式
- 掌握查找区域必须**锁定($)**的原因
- 学会 VLOOKUP + IFERROR 黄金组合
一、这个函数是干什么的?
VLOOKUP = Vertical(垂直)+ LOOKUP(查找):在表格的第一列里找到你要的关键字,然后把它所在那一行的某项信息取回来。
生活化场景:一张 500 行的商品价格表,老板问"P003 多少钱?"——你不用翻 500 行,VLOOKUP 一秒给出答案。它是 Excel 中使用频率最高的函数,没有之一。
二、语法结构
|
|
| 参数 | 说明 |
|---|---|
| 查找值 | 你要找的关键字,如商品编码 F2 |
| 表格区域 | 包含数据的整个区域,第一列必须是关键字所在列 |
| 返回第几列 | 想要的信息在区域里是第几列(从区域左边界数起:1、2、3……) |
| 匹配方式 | FALSE(或0)= 精确匹配;TRUE(或1,或省略)= 模糊匹配 |
三、基础示例(手把手)
商品价格表:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品编码 | 商品名称 | 单价 | 库存 |
| 2 | P001 | 苹果 | 5.5 | 100 |
| 3 | P002 | 香蕉 | 3.2 | 150 |
| 4 | P003 | 橙子 | 4.8 | 80 |
| 5 | P004 | 葡萄 | 12 | 60 |
| 6 | P005 | 西瓜 | 2.5 | 45 |
示例1:根据编码查名称(精确匹配)
F2 输入 P003,在 G2 写:
|
|
结果:橙子
逐步解读(VLOOKUP 的工作流程):
- 拿着查找值
P003,到区域$A$2:$D$6的第一列(A 列)从上往下找 - 在第 4 行找到 P003
- 数区域里的第 2 列(A=第1列、B=第2列)→ B 列
- 返回第 4 行 B 列的值 → 橙子
为什么要 $(绝对引用)? 公式向下复制时,查找值 F2 应该变成 F3、F4(每行查不同的编码),但表格区域不能跟着动——$A$2:$D$6 锁死后,复制到任何行查找的还是同一张表。忘了加 $ 是 VLOOKUP 新手第一大坑。
为什么列号写 2? 列号从区域的左边界开始数,不是从工作表的 A 列数。区域 A2:D6 里:A列=1、B列=2、C列=3、D列=4。
示例2:查单价、查库存
同一个编码,换列号即可:
|
|
示例3:查找不存在的编码
F2 输入 P009(表中不存在),公式返回 #N/A(找不到)。
用第07章的 IFERROR 包装成友好提示:
|
|
结果:商品不存在。这是职场标配组合,背下来。
四、进阶用法
1. 模糊匹配(TRUE):区间查找
业绩提成规则表(下限必须从小到大排列):
| A | B | |
|---|---|---|
| 1 | 业绩下限 | 提成比例 |
| 2 | 0 | 3% |
| 3 | 50000 | 5% |
| 4 | 100000 | 8% |
| 5 | 200000 | 12% |
员工业绩 86000,求提成比例:
|
|
结果:5%
模糊匹配的逻辑:在首列找"不超过查找值的最大值"。86000 落在 50000(≤86000)和 100000(>86000)之间 → 取 50000 那一行 → 5%。
⚠️ 模糊匹配时首列必须升序排列,否则结果会错得离谱。做成绩等级、税率档位、折扣阶梯都用这一招。
2. VLOOKUP 的三大天条(限制)
| 天条 | 说明 | 后果 |
|---|---|---|
| 只能查第一列 | 查找值必须在区域最左列 | 想按"名称"反查"编码"做不到(名称在第2列) |
| 只能向右取值 | 返回列必须在查找列右边 | 取查找列左边的数据做不到 |
| 模糊匹配首列要升序 | TRUE 模式下 | 不排序结果错误 |
前两条的解决方案:第14章 XLOOKUP、第16章 INDEX+MATCH。
3. 两个"找不到"的区别
| 情况 | 原因 |
|---|---|
#N/A |
查找值真的不存在(或格式不一致:一边是文本一边是数字) |
| 返回了别人的数据 | 模糊匹配没排序 / 该用 FALSE 写成了 TRUE |
五、常见错误与注意事项
| 问题 | 原因 | 解决 |
|---|---|---|
| 第一行能查,往下拖全变 #N/A | 区域没加 $,复制后区域跟着跑了 | 改成 $A$2:$D$6 后重新下拉 |
| 明明有却 #N/A | 查找值和数据格式不一致(文本 vs 数字)、或有多余空格 | 统一格式;用 TRIM 清理空格 |
| 返回错列的数据 | 列号数错 | 从区域左边界开始数:1、2、3…… |
| 返回 #REF! | 列号超过了区域宽度(如 4 列的区域写 5) | 检查列号 ≤ 区域列数 |
| 结果是近似值不是精确值 | 第4参数省略了(默认 TRUE 模糊匹配) | 精确查找务必写 FALSE |
六、练习题(请先独立完成)
练习数据准备
Sheet1 录入商品价格表(A1:D6,同本章示例),再在 F 列准备查询区:
| F | |
|---|---|
| 1 | 要查的编码 |
| 2 | P003 |
| 3 | P001 |
| 4 | P005 |
| 5 | P009 |
另在第二张表(或空白区域 J1:K5)录入提成规则表:
| J | K | |
|---|---|---|
| 1 | 业绩下限 | 提成比例 |
| 2 | 0 | 3% |
| 3 | 50000 | 5% |
| 4 | 100000 | 8% |
| 5 | 200000 | 12% |
业绩数据:M2 = 86000,M3 = 250000,M4 = 30000
题目
| 题号 | 题目 | 在何处作答 |
|---|---|---|
| 1 | 根据 F2 的编码查出商品名称 | G2 |
| 2 | 把 G2 公式向下填充到 G5,观察 F5(P009)出现什么 | —— |
| 3 | 根据 F2 的编码查出单价 | H2 |
| 4 | 根据 F2 的编码查出库存 | I2 |
| 5 | 用 IFERROR 改写第1题公式,查不到时显示"商品不存在",并向下填充 | G2(改写) |
| 6 | 用模糊匹配计算 M2 业绩的提成比例 | N2 |
| 7 | 计算 M3、M4 的提成比例(向下填充) | N3、N4 |
| 8 | 思考:第6题如果把提成表的"业绩下限"从大到小排,结果还对吗?为什么? | —— |
七、练习讲解(做完再看)
第1题讲解
四要素:查找值 F2、区域 $A$2:$D$6(锁!)、名称在第 2 列、精确匹配 FALSE:
|
|
→ 橙子。
第2题讲解
P001 → 苹果,P005 → 西瓜,P009 → #N/A(不存在)。
如果第2题下拉后连 P001 都报错,多半是区域没加 $ ——检查公式里的区域是不是变成了 A3:D7、A4:D8。
第3、4题讲解
只改列号:单价是区域第 3 列 → =VLOOKUP(F2,$A$2:$D$6,3,FALSE) → 4.8;库存第 4 列 → 4 → 80。
第5题讲解
把 VLOOKUP 原封不动塞进 IFERROR 第一个参数:
|
|
填充后:苹果、橙子、西瓜正常显示,P009 显示"商品不存在"。
第6题讲解
模糊匹配:=VLOOKUP(M2,$J$2:$K$5,2,TRUE)。
86000 的"不超过它的最大下限"是 50000 → 对应 5%。注意提成表区域同样要加 $。
第7题讲解
下拉后:250000 → 不超过它的最大下限是 200000 → 12%;30000 → 不超过它的最大下限是 0 → 3%。
第8题讲解
结果会错。模糊匹配的算法假设首列从小到大排,倒序时它的"不超过查找值的最大值"判断逻辑会乱掉,返回无法预料的行。用 TRUE 之前,先检查首列是否升序。
八、参考答案
| 题号 | 公式 | 结果 |
|---|---|---|
| 1 | =VLOOKUP(F2,$A$2:$D$6,2,FALSE) |
橙子 |
| 2 | 下拉后 G3=苹果、G4=西瓜、G5=#N/A | —— |
| 3 | =VLOOKUP(F2,$A$2:$D$6,3,FALSE) |
4.8 |
| 4 | =VLOOKUP(F2,$A$2:$D$6,4,FALSE) |
80 |
| 5 | =IFERROR(VLOOKUP(F2,$A$2:$D$6,2,FALSE),"商品不存在") |
橙子/苹果/西瓜/商品不存在 |
| 6 | =VLOOKUP(M2,$J$2:$K$5,2,TRUE) |
5% |
| 7 | 下拉 | N3=12%、N4=3% |
| 8 | 不对,模糊匹配要求首列升序 | —— |
本章小结
=VLOOKUP(查找值, 区域, 列号, FALSE):精确查找,FALSE 别省略- 区域必须 $ 锁定,列号从区域左边界数
- 找不到 =
#N/A,套 IFERROR 显示友好提示 - 模糊匹配 TRUE 用于区间档位,首列必须升序
- 天条:只能查首列、只能向右取——下一章 XLOOKUP 全部打破
下一章:第14章:XLOOKUP 函数