LOOKUP 函数¶
1. 函数概述¶
LOOKUP 是 Excel 中较早的一类“近似匹配查找”函数,用于在单行或单列的有序数据中查找某个值,并返回同位置的结果。它的核心特点是:
- 默认执行 近似匹配:找不到精确值时,会返回“小于等于查找值”的最大值对应的结果
- 要求查找区域按升序排列(否则结果可能不符合预期)
- 适用于“区间映射/等级对应”(如分数段→等级、金额区间→折扣)
说明:
LOOKUP主要用于兼容旧表格或特定近似查找场景。若你需要更灵活的精确匹配、从任意方向返回等能力,通常会用XLOOKUP、VLOOKUP、INDEX+MATCH等方案。但本文聚焦LOOKUP本身。
2. 基础语法¶
LOOKUP 有两种语法形式:向量形式和数组形式。
2.1 向量形式¶
- 在
lookup_vector(单行或单列)中查找lookup_value - 返回
result_vector中同位置的值 - 若省略
result_vector,则返回lookup_vector中的匹配结果
2.2 数组形式¶
array为二维区域- Excel 会在
array的第一行或第一列进行查找 - 返回
array的最后一行或最后一列对应位置的值(取决于形状)
一般建议优先使用“向量形式”,可读性更强、可控性更好。
3. 参数说明¶
3.1 向量形式参数表¶
| 参数 | 是否必填 | 含义 | 要求/说明 |
|---|---|---|---|
lookup_value |
是 | 要查找的值 | 可为数字、文本、逻辑值或单元格引用 |
lookup_vector |
是 | 查找向量(单行或单列) | 必须是单行或单列;建议升序排序 |
[result_vector] |
否 | 返回向量(单行或单列) | 与 lookup_vector 的长度必须一致 |
3.2 返回规则(近似匹配逻辑)¶
LOOKUP 的匹配规则可以概括为:
- 如果能找到 等于
lookup_value的值 → 返回其对应结果 - 如果找不到精确值 → 返回
lookup_vector中 小于等于lookup_value的最大值对应结果 - 如果
lookup_value小于lookup_vector的最小值 → 返回#N/A
4. 基础用法示范¶
下面示例以“向量形式”为主,覆盖 LOOKUP 的典型应用方式。
示例 1:在有序数字列表中近似查找¶
| A列(阈值) | B列(结果) |
|---|---|
| 0 | 青铜 |
| 100 | 白银 |
| 200 | 黄金 |
| 500 | 铂金 |
需求:根据积分(如 D2)返回对应段位。
- 若 D2=230 → 找不到 230 时,取
<=230的最大阈值 200 → 返回“黄金” - 若 D2=80 → 取阈值 0 → 返回“青铜”
示例 2:分数段映射等级¶
| A列(最低分) | B列(等级) |
|---|---|
| 0 | D |
| 60 | C |
| 75 | B |
| 90 | A |
若分数在 E2:
这类“最低分→等级”的表,天然适配 LOOKUP 的近似匹配。
示例 3:省略 result_vector¶
当你只需要返回“最接近且不超过”的那个值本身时:
例如用来求“落在哪个档位阈值上”,会直接返回阈值(0/100/200/500)。
示例 4:将“文本有序表”做近似查找¶
如果 lookup_vector 是按字母升序排序的文本,也可进行近似匹配。
| A列(关键字) | B列(分类) |
|---|---|
| Apple | 水果 |
| Lemon | 水果 |
| Milk | 饮品 |
| Rice | 主食 |
查找词在 C2:
说明:文本比较遵循字典序(A→Z),同样要求查找向量按升序排列。
示例 5:数组形式¶
假设区域 A1:B5 中:
- A列是升序阈值
- B列是返回结果
此时 Excel 会在 A 列(第一列)查找,并从 B 列(最后一列)返回结果。 但当区域形状改变或查找维度不直观时,可读性与可控性会下降,因此更推荐向量形式。
5. 总结¶
LOOKUP的核心用途是:在有序数据中做近似匹配查找,尤其适合“区间→结果”的映射表(分段、等级、折扣等)。- 优先使用 向量形式:
LOOKUP(lookup_value, lookup_vector, [result_vector]),逻辑更清晰,维护更简单。 - 使用时确保:
lookup_vector为单行/单列,并尽量升序排序,这样近似匹配才符合预期。 - 当你的场景需要精确匹配、可指定匹配模式、从任意方向返回等更强能力时,可以考虑
XLOOKUP或INDEX+MATCH作为替代方案。