核心结论:Excel 里 LOOKUP 是查找函数,分向量形式和数组形式两种,核心特点是近似匹配,要求查找区域必须升序排序,找不到精确值的时候,会自动返回小于查找值的最近一项,这点和 VLOOKUP 精确匹配不一样,新手最容易踩坑。
一、两种语法
1)向量形式(推荐,最常用)
=LOOKUP(lookup_value, lookup_vector, [result_vector])
| 参数 | 说明 |
|---|---|
| lookup_value | 要查找的值 |
| lookup_vector | 单行 / 单列的查找区域,必须升序排序 |
| [result_vector | 返回结果区域,大小和查找区域一致 |
2)数组形式(旧版,不推荐)
=LOOKUP(lookup_value, array)
在整个数组第一列 / 第一行查找,返回最后一列 / 最后一行对应值,兼容性一般,现在优先用向量形式。
二、基础示例
A 列是编号(已经升序),B 列是姓名
| A 列编号 | B 列姓名 |
|---|---|
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
公式:
=LOOKUP(2,A1:A3,B1:B3)
查找值是 2,在 A1:A3 找到 2,返回对应 B2,结果就是 李四
近似匹配例子:查找值是 2.5,A 列只有 1、2、3,因为是近似匹配,会返回小于 2.5 最大的值,也就是 2 对应的李四。
三、重要规则(重点考点)
- ✅ lookup_vector 必须升序排序,不排序会出错,返回错误结果
- ✅ 默认是近似匹配,没有精确匹配开关(和 VLOOKUP 第四参数不一样)
- ✅ 如果查找值大于查找区域所有数值,返回最后一行结果
- ✅ 如果查找值小于查找区域最小数值,直接返回 #N/A 错误
- ✅ 文本查找也可以,文本同样要求按字母升序
四、经典妙用:LOOKUP 万能最后一行取值
这个是高频用法,不用排序也可以取最后一个非空值
=LOOKUP(9^9,A:A)
原理:9^9 是超大数字,A 列所有数字都小于它,LOOKUP 自动匹配最后一个数字,得到 A 列最后一个数值。
文本版本:
=LOOKUP("々",A:A)
提取 A 列最后一个文本内容
五、LOOKUP 和 VLOOKUP 对比
| 对比项 | LOOKUP | VLOOKUP |
|---|---|---|
| 匹配方式 | 默认近似匹配 | 可以精确 / 近似两种 |
| 排序要求 | 必须升序 | 精确匹配不需要排序 |
| 查找方向 | 可以横向纵向 | 只能从左向右查找 |
| 缺点 | 不适合强制精确查找 | 不能反向查找 |
【常见问题】
问题 1 Excel LOOKUP 为什么结果不对
回答 1 绝大多数原因是查找区域没有升序排序,LOOKUP 是近似匹配,不排序就会返回错误匹配结果。
问题 2 LOOKUP 可以做精确匹配吗
回答 1 LOOKUP 原生没有精确匹配选项,它是近似匹配,想要强制精确查找一般推荐 VLOOKUP 或者 XLOOKUP。
问题 3 LOOKUP 函数查找不到值会显示什么
回答 1 如果查找值小于查找区域最小数值,会返回 N/A 错误;如果大于全部数值,会返回区域最后一项。
问题 4 LOOKUP 向量形式和数组形式选哪个
回答 1 优先选向量形式,参数清晰,不容易出错,数组形式是老版本遗留写法,现在不推荐日常使用。
免责申明:本内容为 Excel 函数基础教学,不同 Excel 版本函数细节略有差异,新版 365 推荐优先使用 XLOOKUP 替代传统 LOOKUP。


