MICROSOFT

EP01. “VLOOKUP Function VLOOKUP 函数”

首页 Microsoft 工具 Excel · Functions · Lookup & Reference · EP01
约 6 分钟· #EP01#Excel#Lookup & Reference
🔒 登录后可标记已读
  • VLOOKUP 是 Excel 里最常用的查找函数,用来在一个表格的最左列找一个值
  • 找到后返回同一行里指定列的数据
  • 整理精确匹配、近似匹配、通配符匹配、错误处理等常见用法
  • 前置知识不需要
  • 学完能应付大部分「拿一个 ID 去查另一张表」的场景

重点内容


函数速查

函数语法用途例子
VLOOKUP=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])在表格最左列查找值,返回同行指定列的数据=VLOOKUP(53,A2:D10,4,FALSE)

精确匹配

第四参数(range_lookup)设为 FALSE,表示要精确匹配:

=VLOOKUP(53,A2:D10,4,FALSE)

在最左列找到 53,返回同一行第 4 列的数据。如果最左列找不到 53,公式会返回 #N/A 错误。


近似匹配

第四参数设为 TRUE,表示允许近似匹配(找不到精确值时,返回小于等于查找值的最大值所在行):

=VLOOKUP(53,A2:D10,4,TRUE)

📌 用 TRUE 近似匹配时,表格最左列必须先按升序排序,否则结果会不准确(比如 EP03 税率表就是这种用法)。

[截图:VLOOKUP 用错第四参数导致返回近似值的单元格结果,对比 TRUE/FALSE 两种设置的输出差异]


VLOOKUP 只能向右查找

VLOOKUP 只能在"查找列"右边的列返回数据,没办法查找左边的列。如果需要向左查找,要改用 INDEX+MATCH(见 EP07)或 XLOOKUP(见 EP13)。

flowchart TD
    A[要查找数据] --> B{查找列在最左边吗}
    B -->|是,正常向右查| S1
    B -->|不是,需要向左查| C{Excel 是 365 / 2021 吗}
    C -->|是| S2
    C -->|旧版本| S3

    subgraph S1["📋 VLOOKUP 本篇"]
        direction TB
        M1["=VLOOKUP(...)<br/>操作最简单<br/>只能向右查"]
    end
    subgraph S2["⚡ XLOOKUP 见 EP13"]
        direction TB
        M2["新一代查找函数<br/>不受方向限制<br/>需要 Excel 365 / 2021"]
    end
    subgraph S3["🧩 INDEX+MATCH 见 EP03/EP07"]
        direction TB
        M3["旧版本也能用<br/>MATCH 找位置 + INDEX 取值<br/>突破向右查限制"]
    end

重复值只匹配第一个

如果最左列里有重复值,VLOOKUP 只会返回第一个匹配到的结果,后面的重复项不会被考虑。


部分匹配(通配符)

在 lookup_value 里用星号 * 通配符,可以匹配"包含某段文字"的项目,星号代表零个或多个任意字符。


不区分大小写

VLOOKUP 本身查找时不区分大小写。


错误处理

找不到匹配值时会返回 #N/A,可以用 IFNA 包起来显示更友好的提示:

=IFNA(VLOOKUP(53,A2:D10,4,FALSE),"未找到")


跨多表查询

搭配 IF 函数,根据条件动态决定要查哪一张表:

=VLOOKUP(A2,IF(条件,表1,表2),3,FALSE)


学完你会

  • ✅ 能用 VLOOKUP 做精确匹配和近似匹配两种查找
  • ✅ 能用 IFNA 包住 VLOOKUP,把找不到的结果显示成更友好的提示
  • ✅ 知道 VLOOKUP 只能向右查找,遇到向左查找要改用 INDEX+MATCH 或 XLOOKUP

常见错误

  • 忘记表格最左列必须是"查找依据"那一列,VLOOKUP 只会往右找、不会往左找
  • 用近似匹配(TRUE)却没先把最左列排序,导致结果错误但公式不报错,很难发现问题
  • col_index_num 数错列数(是从查找范围最左列开始数第几列,不是整个工作表的列号)

Sources

Blog / Website:

  1. Vlookup