Excel 里面 LOOKUP 函数是查找函数,分为向量形式和数组形式,最常用的是向量形式,核心作用是在一行或者一列里面查找指定值,然后返回另一行 / 对应列的数据,它和 VLOOKUP 不一样,LOOKUP 要求查找区域必须升序排序,如果没有升序,很容易返回错误结果,这是新手最容易踩坑的地方,LOOKUP 有一个经典用法,就是利用近似匹配特性做最后一个非空值提取,很多表格人员经常使用。
函数基础原理:在查找区域,找到小于等于查找值的最大匹配项,属于近似匹配,不是精确匹配优先,这点和 VLOOKUP 精确匹配模式有很大区别。
语法格式
✅ 向量形式(推荐日常使用)
=LOOKUP(lookup_value, lookup_vector, [result_vector])
参数解释
lookup_value:要查找的值
lookup_vector:查找的那一列 / 一行(必须升序排序)
result_vector:要返回结果对应的那一列 / 一行,长度必须和查找区域一致
✅ 数组形式
=LOOKUP(lookup_value, array)
array 是一个二维数组,第一列查找,最后一列返回结果,现在新版本 Excel 大多推荐用 XLOOKUP 或者 VLOOKUP,数组形式使用较少
实操步骤
第一步 准备数据表,查找列提前做升序排序
第二步 点击要输出结果的单元格,输入 = LOOKUP (
第三步 第一个参数选中要查找的目标单元格,比如 A1 要查的编号
第四步 第二个参数选中查找区域,比如 B2:B20
第五步 第三个参数选中对应的返回结果区域,比如 C2:C20
第六步 回车,得到匹配结果,下拉填充公式
经典案例示例
表格:A 列编号,B 列单价,查找编号 1003 对应的单价
公式:
=LOOKUP(1003,A2:A10,B2:B10)
含义:在 A2:A10 查找 1003,返回同行 B 列单价
经典技巧:提取最后一行非空数据
=LOOKUP(1,0/(A2:A100<>""),A2:A100)
这个是高频实用公式,不需要升序,作用是找到 A 列最后一个非空单元格的值,很多报表汇总都会用到。
常见错误对照表
| 问题 | 原因 | 解决办法 |
|---|---|---|
| 返回错误数值 | 查找列没有升序 | 查找区域升序排序 |
| #N/A 错误 | 查找值比区域最小值还小 | 确认查找值在查找范围之内 |
| 结果错位 | 查找区域和返回区域长度不一样 | 两个区域行数保持一致 |
LOOKUP 和 VLOOKUP 对比
LOOKUP:单列 / 单行查找,近似匹配,要求升序,支持横向纵向查找
VLOOKUP:只能按首列查找,支持精确匹配,限制比较多
现在新版 Excel 推荐优先 XLOOKUP,可以替代两者,不需要升序,支持精确查找
【常见问题】
问题 1 lookup 函数怎么用 是不是一定要升序
回答 1 lookup 函数怎么用,基础向量形式默认近似匹配,查找区域必须升序排序,lookup 函数怎么用里面经典 0/(条件) 写法例外,可以不用升序。
问题 2 lookup 函数怎么用 为什么返回 N/A
回答 2 lookup 函数怎么用,N/A 一般是查找值小于查找区域所有数值,或者查找区域没有匹配项,lookup 函数怎么用排查第一步就是检查查找值和查找区域。
问题 3 lookup 函数怎么用 可以横向查找吗
回答 3 lookup 函数怎么用,LOOKUP 支持横向查找,lookup_vector 可以选一行,result_vector 选另一行,也就是横向查找,这是它比 VLOOKUP 灵活的地方。
【免责申明】
本内容为 Excel 函数基础教程,不同 Excel 版本函数表现略有差异,公式请根据实际表格调整。


