Skip to content

Excel 查找匹配:XLOOKUP、VLOOKUP 与 INDEX MATCH ​

查找解决“按同一个标识从另一张表取值”。先确认匹配键唯一且类型一致,再选择函数;看起来成功返回一个值,不代表选中了正确记录。

图示跟练按产品查价并发现缺失与重复

点击步骤切换图示,再到 Office 中跟做;每一步都可跳到下方详细说明。

Excel练习文件 · 界面示意
③ 加号操作 / 设置示意

工作表:产品

区域:A1:B4

详细输入与检查见本步正文 ↓
简化示意,非软件截图。以 Windows 中文界面为主,实际按钮位置与功能取决于版本;可在应用搜索框查找命令。

建立产品表 ​

新建 产品 工作表,在 A1:B4 输入:

产品单价
键盘120
鼠标80
显示器900

在 订单 的独立检查列查出价格,与原单价比较,不直接覆盖原始数据。真实业务往往应按产品编码匹配,产品名称可能重名或改名;本练习只为演示函数而使用唯一名称。

使用 XLOOKUP ​

从订单第 2 行的 D2 产品查价格:

text
=XLOOKUP(D2,产品!$A$2:$A$4,产品!$B$2:$B$4,"未找到",0)

参数依次是查找值、查找区域、返回区域、缺失结果、匹配方式。0 明确表示精确匹配,XLOOKUP 默认也是精确匹配;返回区域可位于查找列左侧。向下填充时,D2 随行移动,产品表的范围保持锁定。

XLOOKUP 不适用于 Excel 2016、2019;即使这些版本能打开别人创建的文件,也不等于能正确计算这个函数。旧版使用下面的替代公式。微软 XLOOKUP 说明

使用 VLOOKUP 与 INDEX MATCH ​

text
=VLOOKUP(D2,产品!$A$2:$B$4,2,FALSE)
=INDEX(产品!$B$2:$B$4,MATCH(D2,产品!$A$2:$A$4,0))

VLOOKUP 在指定区域的第一列找值,从区域第 2 列返回结果,FALSE 表示精确匹配。遗漏最后一个参数可能进入近似匹配,未满足排序等条件时结果容易出错。INDEX MATCH 中,MATCH 先找位置,再由 INDEX 从价格区域取对应位置。

需要处理查找不到的情况时,可以使用 IFNA(公式,"未找到"),保持其他计算错误可见。不要把缺失价格默认为零,零可能被误当成免费产品,从而影响金额汇总。

重复键与类型问题 ​

在产品表第 5 行增加第二个“鼠标”且价格不同,把查找公式的产品范围扩展到 A2:A5、价格范围扩展到 B2:B5。普通精确查找通常只返回某个匹配位置,不能自动判断哪个有效。用 COUNTIF(产品!$A$2:$A$5,D2) 检查匹配数量;等于 0 是缺失,大于 1 是重复,需要清理或增加版本、日期等匹配条件。新增记录后不扩大固定范围,查找和检查都会遗漏新行。

编号 00123 与数值 123 可能不是同一种键。去掉前导零前先确认业务是否允许;给长编号转换为数值还可能丢失精度。字符串中的前后空格、不间断空格和全角字符也可能造成看起来相同但匹配不到。

新版筛选函数 ​

需要取出所有匹配记录时,单值查找并不合适。支持动态数组的版本可在空白普通区域输入:

text
=FILTER(Sales,Sales[部门]="运营","无记录")

结果会溢出为多行多列,周围必须有空位,不能把这类溢出公式放在 Excel 表格内部当作整块输出。缺少 FILTER 的旧版可使用自动筛选、辅助列或 Power Query,不能只修改扩展名解决功能缺失。

练习与验收 ​

依次查找键盘、鼠标、显示器,结果为 120、80、900;查找“耳机”应显示未找到。再制造一个重复产品名,确认检查列能提示重复。清理测试数据后,把查找价格与订单原价格相减,八行差值应全为 0。

图示跟做:按产品查价并发现缺失与重复 ​

按上方图示切换三个关键步骤;下面保留完整操作和检查结果,便于跟做与回查。请先使用练习副本。

第 1 步:准备唯一且类型一致的键 ​

定位:工作表标签 → 加号。

新建产品工作表,按正文录入键盘 120、鼠标 80、显示器 900。产品名称只出现一次,价格列存数值。在订单副本 I1 写“查得单价”,先保留原单价 F 列作对照;查找结果不能未经核对就覆盖源数据。

第 2 步:输入查找式并向下检查 ​

定位:公式 → 插入函数。

在 I2 输入正文的 XLOOKUP 公式,以 D2 查产品名,锁定产品表的 A2:A4、B2:B4。向下填充到 I9,再在 J2 输入 =I2-F2 并填充。八行差额应为 0。旧版找不到 XLOOKUP 时使用正文精确匹配的 VLOOKUP 或 INDEX MATCH,不能省略匹配条件。

第 3 步:主动制造两种失败情况 ​

定位:数据 → 筛选。

在练习副本把一个产品改成耳机,确认得到“未找到”,而不是零元。再在产品表第 5 行新增另一条鼠标价格,扩展查找及 COUNTIF 的范围到第 5 行,匹配数应大于 1。查找能返回数值并不代表键唯一,必须先决定哪条产品记录有效。

没有得到预期结果时 ​

完成故障练习后恢复三条产品和原订单名称。若看似相同仍匹配不到,检查空格、全角字符与文本数字类型;含前导零的编码不能随意转数值。

继续阅读