EP01. “VLOOKUP Function VLOOKUP 函数”
🔒 登录后可标记已读- 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: