Excel 公式

Excel LOOKUP 函数怎么用(向量与数组形式)

更新于 2026-06-04 · 阅读约 7 分钟

LOOKUP 是 Excel 里最老牌的查找函数之一,写法简洁,却藏着一个很多人不知道的致命前提:查找区必须升序排列,否则结果是错的,而且不报错。本文讲清向量形式和数组形式,再告诉你一个不用排序、不挑函数的省心做法。


超级表中用匹配工具按某列查另一表数据的示意
查另一张表的数据——超级表里用匹配/查找工具点几下即可。

在 Excel 里,查找数据的函数选择不少:VLOOKUPXLOOKUP、INDEX+MATCH……而 LOOKUP 是其中语法最短、也最容易被误用的一个。理解它的两种形式,才能在对的场景用对函数,也才能知道什么时候应该换个做法。

LOOKUP 向量形式:最常用的写法

向量形式是 LOOKUP 最常见的用法,语法是:

=LOOKUP(查找值, 查找向量, 结果向量)

三个参数含义:

  • 查找值:你要找的那个值,例如某个姓名、编号;
  • 查找向量:去哪一列(或一行)里找——必须是单列或单行,且必须升序排列;
  • 结果向量:找到后从哪一列(或一行)里取值,形状与查找向量一致。

举例:A 列是员工编号(升序),B 列是姓名。要根据 E2 的编号查出对应姓名:

=LOOKUP(E2, A2:A100, B2:B100)

找到编号后,返回 B 列里同一行的姓名。整个公式只有三段,写起来比 VLOOKUP 短一个参数(不用写列号数字,不用写 FALSE)。

向量形式的灵活之处在于:查找向量和结果向量可以不相邻,也不要求结果向量在查找向量右边——这一点比 VLOOKUP 方便。但升序前提一旦不满足,结果就悄悄出错,详见下文。

LOOKUP 数组形式:它和 VLOOKUP 有什么区别

数组形式只有两个参数:

=LOOKUP(查找值, 数组)

这里的「数组」是一个完整的单元格区域(多列多行)。LOOKUP 会根据数组的形状自动决定:如果列数多于行数,就在第一行查找并返回最后一行;如果行数多于等于列数,就在第一列查找并返回最后一列。

听起来像 VLOOKUP,但有几个关键区别:

  • VLOOKUP 可以指定返回第几列,LOOKUP 数组形式永远返回最后一列——灵活性更低;
  • VLOOKUP 第四参数写 FALSE 时做精确匹配,LOOKUP 始终做近似匹配(二分查找)——同样要求升序;
  • LOOKUP 数组形式在现代 Excel 里几乎被 VLOOKUP 或 XLOOKUP 取代,很少单独使用;
  • LOOKUP 数组形式理论上支持横向(返回最后一行),相当于简化版 HLOOKUP,但同样要求升序。

简单说:数组形式是 LOOKUP 的「简写语法糖」,实际工作中遇到的大多是向量形式;VLOOKUP 在精确匹配场景下更可控、更可读。

LOOKUP 最大的坑:要求查找区升序排列

这是 LOOKUP 与 VLOOKUP 最容易被忽视的本质区别,也是出错最多的地方。

LOOKUP 在底层用的是二分查找:它假设查找向量是升序的,每次从中间切一刀,判断目标值在左半段还是右半段,不断缩小范围直到找到。这样找得很快,但前提是数据必须有序。

如果查找向量不是升序,LOOKUP 的二分逻辑就会切错方向,最终定位到错误的行,返回一个错误的值。而且它不报错——你看到的是一个「看起来合理」的结果,根本发现不了问题。

隐蔽的错误比 #N/A 更危险
VLOOKUP 用 FALSE 精确匹配时,找不到会报 #N/A,至少你知道出问题了。LOOKUP 在数据无序时会悄悄返回一个错值,表面上一切正常,数据却是错的。在财务、统计等对数值敏感的场景,这比报错更危险。

因此:除非你能确定查找区始终保持升序,否则不要用 LOOKUP 做精确匹配。在不确定的情况下,VLOOKUP(第四参数 FALSE)或 XLOOKUP 是更稳的选择。

更省心:超级表的匹配 / 查找工具,不用排序

超级表(TableDI)是一款桌面端高能表格助手,macOS / Windows 均可用,离线运行、无需登录。fx 工具栏内置了「匹配」和「查找」工具,把查找这件事做成了可视化操作——不需要记函数语法,也不要求数据升序排列,底层做的是精确匹配。步骤如下:

  1. 把数据表导入超级表(Excel / CSV 直接拖进来,或粘贴)。
  2. 点击 fx 工具栏,选择「匹配」「查找」工具。
  3. 指定「用哪一列来匹配」(相当于 LOOKUP 的查找向量)和「要取哪一列的值」(相当于结果向量)。
  4. 点击执行,结果自动填入目标列,数据随源表更新,不用重写公式。

超级表还内置了 VLOOKUP、XLOOKUP 工具,可根据场景灵活选择;「去重」「合并重复」「IF 条件」「拆分」「汇总」等工具也在同一个 fx 工具栏里,处理完查找之后的下一步不用换软件。

LOOKUP 向量形式 vs VLOOKUP vs 超级表

对比项LOOKUP 向量形式VLOOKUP(FALSE)超级表匹配工具
要求升序是,否则结果错且不报错否(精确匹配不要求)
找不到时返回最近值,不报错#N/A,可感知留空或可配置提示
结果列方向可在查找列左边只能在查找列右边任意列
语法难度短,但有隐患4 参数,需记列号可视化点选,无需记语法
数据无序能用吗不建议
多列一次匹配每列写一次每列写一次一次勾选多列

常见问题

LOOKUP 为什么要升序?

因为 LOOKUP 在底层用二分查找算法定位目标值,二分查找的正确性依赖数组有序这一前提。如果查找区不升序,算法每次切分方向可能出错,最终定位到错误位置,返回错误的值——并且不会报 #N/A,你看不出问题。所以,确定数据不是升序时,请改用 VLOOKUP(第四参数 FALSE)或 XLOOKUP,或者直接用超级表的匹配工具。

LOOKUP 和 VLOOKUP 哪个好?

两个函数服务不同场景:VLOOKUP 精确匹配(FALSE)更安全,找不到会报错,可感知;LOOKUP 写法更短,且结果向量可以在查找向量左边,但对升序依赖很强。如果数据能保证升序(例如用 ID 做主键且从不乱序),LOOKUP 向量形式简洁好用;否则选 VLOOKUP 或 XLOOKUP 更稳。新版 Excel 里 XLOOKUP 几乎是更好的替代:语法清晰、不要求升序、支持反向查找,可参考本站 XLOOKUP 教程

超级表免费吗?

免费版可直接下载使用,离线本地运行,匹配、查找、去重、合并等核心工具均免费;如需每表导出超过 1000 行、AI 处理或更多高级功能,可按需升级付费版(年付 ¥199,或 ¥599 终身)。

不想再记升序要求和函数参数?

免费下载超级表,匹配/查找工具点几下搞定,不挑顺序、不用记语法

免费下载(macOS / Windows)