[注意] VLOOKUP基础语法
=VLOOKUP(查找值, 表格数组, 返回列号, [匹配类型])[详解] 参数逐一拆解
- 查找值:你要找什么?可以是数值、文本、单元格引用。
- 表格数组:去哪里找?必须是一个区域,且查找值必须在该区域的第一列。
- 返回列号:找到后,返回表格数组中的第几列(从1开始数)。
- 匹配类型:FALSE(0)表示精确匹配;TRUE(1)表示近似匹配(需要查找列升序排序)。
[数据] 案例:从另一张表中匹配单价
当前表(订单表)有产品ID,需要从“产品信息表”中匹配出产品名称和单价。
产品信息表(Sheet2):
| A(产品ID) | B(产品名称) | C(单价) |
|---|---|---|
| 1001 | 手机 | 2000 |
| 1002 | 平板 | 1500 |
订单表(Sheet1):A列是产品ID,想在B列显示产品名称。
=VLOOKUP(A2, Sheet2!$A$2:$C$3, 2, 0)解释:查找A2的值(1001),在Sheet2的A2:C3区域中第一列查找,找到后返回该区域的第2列(产品名称)。$符号锁定区域,拖动公式时区域不变。
[工具] 进阶用法
1. 使用COLUMN函数自动填充列号
如果你需要匹配多列(名称、单价),可以写:=VLOOKUP($A2, Sheet2!$A$2:$C$3, COLUMN(B1), 0) 向右拖动时,COLUMN(B1)=2,COLUMN(C1)=3,自动变化。
2. 近似匹配(等级评定)
成绩等级表:0-60不及格,60-70及格,70-80中等。近似匹配要求查找列升序。
=VLOOKUP(B2, {0,"不及格";60,"及格";70,"中等"}, 2, 1)3. IFERROR处理找不到的情况
如果查找值不存在,VLOOKUP返回#N/A。用IFERROR美化:=IFERROR(VLOOKUP(A2, Sheet2!A:C, 2, 0), "未找到")
[警告] 常见错误及解决办法
- #N/A错误:查找值不在表格数组第一列,或格式不一致(数字和文本)。解决:检查数据格式,用VALUE或TEXT转换。
- #REF!错误:返回列号超过了表格数组的列数。
- 近似匹配返回错误结果:查找列没有升序排序。
[提示] VLOOKUP的局限性及替代方案
- 不能向左查找:查找值必须在第一列,要返回的值必须在右侧。替代:INDEX+MATCH或XLOOKUP。
- 插入列后列号会乱:建议使用表名称或命名区域。