📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第15章-MATCH函数-练习.xlsx
难度:⭐⭐⭐ | 建议用时:35 分钟 | 前置知识:第13章 VLOOKUP(理解查找概念)
本章学习目标
- 理解 MATCH 返回的是位置(第几个),不是值
- 掌握三种匹配类型(0 / 1 / -1)
- 为第16章 INDEX+MATCH 黄金组合打地基
一、这个函数是干什么的?
前面学的 VLOOKUP / XLOOKUP 返回的是"值",而 MATCH 返回的是位置——你要找的东西在列表里排第几个。
生活化理解:运动会成绩册上找"王五",VLOOKUP 告诉你"王五跑了 78 分",MATCH 告诉你"王五排在名单的第 3 位"。
单独用 MATCH 的场景不多,但它和 INDEX 组合后是 Excel 查找体系的"隐藏王者"(第16章)。
二、语法结构
|
|
| 参数 | 说明 |
|---|---|
| 查找值 | 要找的内容 |
| 查找区域 | 一行或一列的连续区域(不能是多行多列的方块) |
| 匹配类型 | 0=精确匹配;1=小于等于查找值的最大值(区域须升序);-1=大于等于查找值的最小值(区域须降序)。省略默认 1 |
匹配类型速记
| 类型 | 行为 | 区域要求 | 使用频率 |
|---|---|---|---|
| 0 | 一模一样才算找到 | 无要求 | ★★★★★(绝大多数情况) |
| 1 | 找"不超过它的最大值" | 必须升序 | ★★(区间定位) |
| -1 | 找"不低于它的最小值" | 必须降序 | ★(很少用) |
三、基础示例(手把手)
名单表:
| A | B | |
|---|---|---|
| 1 | 姓名 | 成绩 |
| 2 | 张三 | 85 |
| 3 | 李四 | 92 |
| 4 | 王五 | 78 |
| 5 | 赵六 | 88 |
| 6 | 孙七 | 95 |
示例1:王五在第几行?
|
|
结果:3
解读:在 A2:A6 里从上往下数:张三(1)、李四(2)、王五(3)——返回区域内的第 3 个位置。 ⚠️ 注意:位置是相对区域数的,不是工作表的行号!王五在工作表第 4 行,但在区域 A2:A6 里排第 3,MATCH 返回 3。
示例2:查找值用单元格引用
F2 输入"赵六":
|
|
结果:4(赵六是区域内第 4 个)
示例3:找不到时
|
|
结果:#N/A——和 VLOOKUP 一样,精确匹配找不到就报 #N/A,可以用 IFERROR 包装。
示例4:区间定位(匹配类型 1)
分数段表(升序):
| A | B | |
|---|---|---|
| 1 | 分数下限 | 等级 |
| 2 | 0 | 不及格 |
| 3 | 60 | 及格 |
| 4 | 80 | 良好 |
| 5 | 90 | 优秀 |
85 分落在哪个区间?
|
|
结果:3
解读:类型 1 找"不超过 85 的最大下限":0、60、80 都不超过 85,最大的是 80 → 80 在区域第 3 个位置 → 返回 3。第 16 章会用它配合 INDEX 直接取出"良好"。
四、进阶用法
1. 横向 MATCH
查找区域也可以是一行(如表头行 B1:D1):
|
|
返回"英语"在表头中的列位置。第16章的"双向查找"靠它。
2. 判断"存不存在"(比 COUNTIF 更直接)
|
|
MATCH 找到就返回数字(ISNUMBER 为真),找不到返回错误(ISNUMBER 为假)。
3. MATCH vs VLOOKUP 的思维差异
| 返回什么 | 比喻 | |
|---|---|---|
| MATCH | 位置:第几个 | 侦察兵:报告敌人在哪 |
| VLOOKUP | 值:那行的某项内容 | 快递员:直接把货取回来 |
| INDEX(下一章) | 按位置取值 | 武器:给坐标就打击 |
MATCH 报位置 + INDEX 取货 = 完整作战链,这就是下一章的内容。
五、常见错误与注意事项
| 问题 | 原因 | 解决 |
|---|---|---|
| 忘记第3参数 | 省略默认类型 1,精确查找会返回莫名其妙的近似位置 | 精确查找永远写 0 |
| 位置对不上行号 | MATCH 返回区域内相对位置,不是工作表行号 | 区域从第2行开始,实际行号 = MATCH结果 + 1 |
| 类型1结果错乱 | 区域没按升序排 | 类型 1 必须升序,类型 -1 必须降序 |
| 区域选了方块 | MATCH 只能单行/单列 | 把区域收窄成一列或一行 |
| 文本数字匹配失败 | 查找值是数字,区域里是文本(或反之) | 统一格式 |
六、练习题(请先独立完成)
练习数据准备
录入本章名单表(A1:B6)和分数段表(建议放在 D1:E5):
| D | E | |
|---|---|---|
| 1 | 分数下限 | 等级 |
| 2 | 0 | 不及格 |
| 3 | 60 | 及格 |
| 4 | 80 | 良好 |
| 5 | 90 | 优秀 |
题目
| 题号 | 题目 | 在何处作答 |
|---|---|---|
| 1 | 用 MATCH 找出"王五"在 A2:A6 中的位置 | F2 |
| 2 | 找出"孙七"的位置 | F3 |
| 3 | 查找"钱九",观察结果 | F4 |
| 4 | 在 G1 输入"赵六",用引用 G1 的方式找位置 | F5 |
| 5 | 用类型 1 找出 85 分落在分数段的第几个位置 | F6 |
| 6 | 找出 92 分的位置(类型 1,正好等于某档下限时会怎样?) | F7 |
| 7 | 思考:为什么第1题答案是 3 而不是 4?王五明明在工作表第 4 行 | —— |
七、练习讲解(做完再看)
第1题讲解
=MATCH("王五",A2:A6,0) → 区域内第 3 个 → 3。文本查找值加引号,精确匹配写 0。
第2题讲解
=MATCH("孙七",A2:A6,0) → 孙七是区域最后一个 → 5。
第3题讲解
#N/A——钱九不在名单里。想体面显示就套 IFERROR:=IFERROR(MATCH("钱九",A2:A6,0),"查无此人")。
第4题讲解
=MATCH(G1,A2:A6,0) → 赵六是第 4 个 → 4。引用单元格时查找值不用引号。
第5题讲解
=MATCH(85,D2:D5,1) → 不超过 85 的最大下限是 80,80 在 D2:D5 中排第 3 → 3。
第6题讲解
=MATCH(92,D2:D5,1) → 不超过 92 的最大下限是 90(90≤92)→ 90 排第 4 → 4。
要点:类型 1 在"正好等于某档"时,取的就是那一档(≤ 包含等于)。
第7题讲解
MATCH 数的是区域内部的序号:A2:A6 里 A2 是第 1 个、A3 第 2 个、A4(王五)第 3 个。它不看工作表行号。想要工作表行号,把结果加上区域起点前的行数(本例 +1)。
八、参考答案
| 题号 | 公式 | 结果 |
|---|---|---|
| 1 | =MATCH("王五",A2:A6,0) |
3 |
| 2 | =MATCH("孙七",A2:A6,0) |
5 |
| 3 | =MATCH("钱九",A2:A6,0) |
#N/A |
| 4 | =MATCH(G1,A2:A6,0) |
4 |
| 5 | =MATCH(85,D2:D5,1) |
3 |
| 6 | =MATCH(92,D2:D5,1) |
4 |
| 7 | MATCH 返回区域内相对位置,非工作表行号 | —— |
本章小结
=MATCH(查找值, 单行或单列区域, 匹配类型):返回位置(第几个)- 精确匹配写
0(别省略);类型 1 区间定位须升序 - 位置是相对区域的序号,不是工作表行号
- MATCH 单打独斗用处有限,和 INDEX 合体才是完全体——下一章见
下一章:第16章:INDEX 函数