返回上一页
办公技巧·Excel/WPS

VLOOKUP跨表匹配——史上最详细教程

[注意] 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。
  • 插入列后列号会乱:建议使用表名称或命名区域。