相信大家都遇到过这样的情景:同事发来一张几千行的员工表,让你把"张三"的工资找出来。你用Ctrl+F一个个翻,翻了5分钟才找到——在第386行。
但问题是:找到了行号,还得去另一列对应位置把工资复制出来。
今天要说的MATCH函数就是解决这个问题的——它专门帮你找"位置",找到后交给INDEX去拿数据。两个函数配合,比VLOOKUP灵活10倍。
参数 | 说明 | 常用值 |
查找值 | 你要找什么 | "张三"、10086、A2 |
查找区域 | 到哪里找 | A:A、B2:B100 |
匹配类型 | 怎么匹配 | 0=精确 1=升序近似 -1=降序近似 |
A | B |
|---|---|
姓名 | 销售额 |
张三 | 98,500 |
李四 | 76,200 |
王五 | 112,300 |
赵六 | 89,100 |
陈七 | 65,800 |
周八 | 103,400 |
公式:=MATCH("赵六", A2:A7, 0)
结果: 4(赵六在A2:A7中是第4个)
注意:MATCH返回的是相对位置(从查找区域的第1行算起),不是Excel行号。上面例子里赵六是A5单元格,但查找区域是A2:A7,所以返回4(A2=1, A3=2, A4=3, A5=4)。
A | B | |
|---|---|---|
分数 | 等级 | |
0 | 不及格 | |
60 | 及格 | |
80 | 良好 | |
90 | 优秀 |
D | E | F |
|---|---|---|
姓名 | 分数 | 等级 |
张三 | 85 | =INDEX(B2:B5, MATCH(E2, A2:A5, 1)) |
李四 | 59 | → "不及格" |
王五 | 92 | → "优秀" |
赵六 | 73 | → "及格" |
匹配类型=1的前提:查找区域必须按升序排列(0→60→80→90),否则结果不准。
员工编号 | 姓名 |
|---|---|
FIN-2026-015 | 张三 |
DEP-2026-001 | 李四 |
DEP-2026-002 | 王五 |
HR-2026-008 | 赵六 |
=MATCH("DEP*", A2:A5, 0) → 返回2(第一个DEP开头的在A3,区域第2个)
通配符 | 含义 | 示例 |
|---|---|---|
* | 任意多个字符 | "DEP*" 匹配所有DEP开头 |
? | 单个任意字符 | "A?" 匹配A1、A2,不匹配A10 |
~ | 转义符 | "~*" 匹配星号本身 |
通配符只能在匹配类型=0(精确匹配)时使用,1和-1不支持。
A | B | C |
|---|---|---|
工号 | 姓名 | 部门 |
EMP001 | 张三 | 技术部 |
EMP002 | 李四 | 市场部 |
EMP003 | 王五 | 财务部 |
需求: 根据姓名"李四"找工号。
结果: EMP002
对比 | VLOOKUP | INDEX+MATCH |
|---|---|---|
查找值位置 | 必须在第一列 | 任意位置 |
反向查找 | ❌ 不支持 | ✅ 支持 |
列插入影响 | 列号写死,插入列后要改公式 | 引用区域,插入列不影响 |
查找方式 | 默认近似匹配 | 可指定精确/近似/通配符 |
速度 | 整列查找较慢 | 指定区域更快 |
进阶:二维交叉查找
1月 | 2月 | 3月 | |
|---|---|---|---|
张三 | 85 | 92 | 78 |
李四 | 90 | 88 | 95 |
王五 | 78 | 85 | 80 |
需求: 查找"李四"的"2月"成绩。
这就是传说中的二维查找,VLOOKUP做不到,INDEX+MATCH轻松搞定。
匹配类型 | 名称 | 查找区域要求 | 没找到时 | 典型场景 |
|---|---|---|---|---|
0 | 精确匹配 | 任意顺序 | 返回#N/A | 查找员工编号、姓名等 |
1 | 升序近似 | 必须升序排列 | 返回小于查找值的最大值位置 | 成绩等级、税率计算 |
-1 | 降序近似 | 必须降序排列 | 返回大于查找值的最小值位置 | 反向价格区间查找 |
使用技巧:
错误 | 原因 | 解决方案 |
|---|---|---|
#N/A | 没找到匹配值 | 用IFERROR兜底:=IFERROR(MATCH(...), "未找到") |
查找区域维度不匹配 | 检查区域是一行还是一列 | |
结果比预期大1或小1 | 区域起止行搞错了 | MATCH从区域第一行算起,不是Excel行号 |
近似匹配结果不对 | 忘了升序排列 | 匹配类型=1时,查找区域必须升序 |
文本数字混用 | "100"和100不匹配 | TEXT(A2,0)统一格式 |
主要注意这几个避坑点,相信大家用起来会更加的得心应手。好了,今天的分享就到这里了,如果觉得有用的,别忘了转发加关注,谢谢大家,我们下期再见!