今日学习目标
- 记住 VLOOKUP 四个参数各自干什么
- 会用 FALSE 做精确匹配
- 理解第一列规则:查找值必须在数据表第一列
- 会排查 #N/A 和 #REF! 两个高频报错
知识点
1. excel vlookup 怎么用:先看场景
价格表(货号 A 列、单价 B 列)+ 只记货号的流水,要自动带出单价,手抄慢且易错。VLOOKUP 干的就是这个:拿一个值去另一张表第一列里找,返回同行指定列的内容。
2. 四个参数拆开记
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
| 参数 | 含义 | 本例取值 |
|---|---|---|
| lookup_value | 找什么 | 货号 A2 |
| table_array | 在哪找(查找值必须在其第一列) | $F$2:$G$8 |
| col_index_num | 返回表中第几列 | 2 |
| range_lookup | FALSE 精确,TRUE 近似 | FALSE |
3. 精确匹配一律 FALSE
日常工作绝大多数是精确匹配:货号对货号、工号对工号,第四参数写 FALSE(或 0)。TRUE 是近似匹配,只用于"分数段定等级"这类区间查找。新手阶段一律 FALSE,能避开一半的坑。
4. 搭档 IFERROR:最后再穿
查不到会显示 #N/A,可外包一层:=IFERROR(VLOOKUP(...),"未录入")。顺序不能反——先排错再加外套,一上来就用 IFERROR 会盖住真问题。
今日代码
价格表在 F2:G8,流水货号在 A 列,B2 写:
excel=VLOOKUP(A2,$F$2:$G$8,2,FALSE)
| A 货号 | B 公式结果 | 过程 |
|---|---|---|
| P003 | 12.5 | 在 F 列找到 P003,取同行第 2 列 |
| P010 | #N/A | F 列没有 P010 |
$F$2:$G$8 两个 $ 锁死查找区域:下拉时区域不动、A2 逐行走——第 2 课的绝对引用在这里用上了。
练习题
- 用 VLOOKUP 把员工表(工号→姓名)的姓名带进考勤表。
- 价格表在 K:L 列,写出从流水表 M2 查单价、区域锁死的公式。
- 给第 1 题套上 IFERROR,查不到显示"无此工号"。
习题解答
=VLOOKUP(A2,员工表!$A$2:$B$50,2,FALSE)。跨表区域直接点选。=VLOOKUP(M2,$K$2:$L$100,2,FALSE)。列号 2 表示返回区域第 2 列,即 L 列。=IFERROR(VLOOKUP(A2,员工表!$A$2:$B$50,2,FALSE),"无此工号"),原公式整体作为第一参数。
实战场景
背景:仓库月度盘点,盘点表只抄了货号和数量,金额要按系统导出的价目表补齐。N2 写 =VLOOKUP(L2,价目表!$A$2:$C$200,3,FALSE) 带出单价,O2 写 =M2*N2 算金额,两列一起下拉,500 行盘点单三分钟对完——手工核对要一下午。货号前导零不统一时,先统一格式再查,否则整列 #N/A。
常见错误与排查
| 报错/现象 | 原因 | 解决方法 |
|---|---|---|
#N/A |
值不在;两边格式不一(文本 vs 数字);有隐藏空格 | Ctrl+F 到源表验证;分列统一格式;TRIM 去空格 |
#REF! |
col_index_num 超出区域列数,如两列区域却写 3 | 列号改成区域内的数字 |
整列都是 #N/A |
查找值不在区域第一列 | 调整区域起点,或把查找列挪到最左 |
| 下拉后结果错乱 | 忘了给 table_array 加 $ | 选中区域按 F4 锁定 |
延伸练习
- 做"分数段定等级":0-59 不及格、60-79 及格、80-100 优秀,第四参数用 TRUE、对照表第一列升序,体会和 FALSE 的差别。
- 连查两列:先带单价再带品名,两个公式只有第 3 参数不同。
学习总结
VLOOKUP 四参数:找什么、在哪找(查找值在第一列)、取第几列、精确用 FALSE。$ 锁区域、A2 留变化;#N/A 先查"在不在、格式同不同",#REF! 查列号;IFERROR 是最后的美化。下一课:数据透视表。
由在线工具箱(www.vba.net)整理制作