核心结论 MATCH 是 Excel 查找类函数,作用是在一行或者一列区域里面,查找指定内容,返回这个内容在该区域里面的相对位置序号,它本身只返回位置数字,经常搭配 INDEX 组成 INDEX+MATCH 经典组合,实现双向查询,很多新手容易把 MATCH 和 VLOOKUP 搞混,VLOOKUP 是找到之后返回对应列的值,MATCH 只返回第几行第几列的位置编号,理解这个核心区别,才能用好这个函数,接下来讲解语法、参数规则、三种匹配类型、实操案例、常见报错和组合用法。
一 函数语法
=MATCH(lookup_value, lookup_array, [match_type])
| 参数 | 说明 |
|---|---|
| lookup_value | 要查找的目标值,可以是数字、文本、单元格引用 |
| lookup_array | 查找区域,必须是单行或者单列,不支持多块不连续区域 |
| [match_type] | 匹配类型,可选参数,一共 3 种:1、0、-1,默认是 1 |
二 三种 match_type 匹配规则(重点)
| match_type | 匹配模式 | 要求 |
|---|---|---|
| 0 | 精确匹配 | 最常用,不需要排序,找到第一个完全相等的值,找不到返回 #N/A |
| 1 | 小于匹配 | 查找区域必须升序排列,返回小于等于目标值的最大值位置 |
| -1 | 大于匹配 | 查找区域必须降序排列,返回大于等于目标值的最小值位置 |
✅ 日常 90% 场景都使用 0 精确匹配,做查询推荐优先写 0,不要依赖默认值,避免排序错误导致结果异常。
三 基础实操案例
案例:A2:A8 是姓名列,现在查找 “张三” 在这个区域的第几个位置
=MATCH("张三",A2:A8,0)
如果张三在 A4 单元格,A2 是区域第一个,那么返回结果就是 3,代表是这个区域内第 3 个位置。
数字精确匹配示例:查找数值 80 在 B2:B10 的位置
=MATCH(80,B2:B10,0)
四 经典组合 INDEX+MATCH
MATCH 负责返回位置,INDEX 根据位置取出对应单元格的值,这个组合比 VLOOKUP 优势是支持反向查找、不受列顺序限制
示例:根据姓名,在 A 列查找位置,再用 INDEX 从 C 列取出对应的成绩
=INDEX(C2:C8,MATCH("张三",A2:A8,0))
五 常见报错与原因
| 报错 | 原因 | 解决办法 |
|---|---|---|
| #N/A | 精确匹配找不到目标,或者升 / 降序错误 | 核对目标内容,检查空格,确认 match_type=0 精确匹配 |
| #VALUE! | lookup_array 不是单行单列,或者参数类型错误 | 改成单行 / 单列区域 |
| #REF! | 返回位置超出区域范围 | 检查查找区域是否正确 |
六 使用注意事项
1 MATCH 区分大小写吗?精确匹配模式下不区分大小写
2 如果查找区域里面有多个相同目标,MATCH 只会返回第一个匹配项的位置
3 通配符支持:精确匹配的时候,lookup_value 可以使用 代表任意多个字符,? 代表单个字符
4 查找区域如果存在多余前后空格,会匹配失败,建议先用 TRIM 清理空格
5 WPS 表格里面 MATCH 函数语法和 Excel 完全一致,可以通用
【常见问题】
问题 1 MATCH 函数和 VLOOKUP 有什么区别
回答 1 MATCH 函数只返回目标在区域内的相对位置序号,VLOOKUP 是找到目标之后直接返回对应列的数据,MATCH 经常搭配 INDEX 完成查询。
问题 2 MATCH 函数 match_type 不写默认是多少
回答 2 MATCH 函数 match_type 省略的时候默认是 1,也就是小于匹配,要求区域升序,日常查询推荐手动填写 0 做精确匹配。
问题 3 MATCH 函数可以横向一行里面查找吗
回答 3 可以,MATCH 函数既支持纵向单列查找,也支持横向单行查找,只要查找区域是单行或者单列就可以。
问题 4 MATCH 函数查找多个相同值会返回全部位置吗
回答 4 不会,MATCH 函数只会返回第一个匹配成功内容的位置,不会一次性输出所有匹配结果。
【免责申明】
本内容仅作为 Excel 函数学习参考,不同 Excel 版本函数细节基本一致,部分新版动态数组版本行为略有差异,本内容不替代官方帮助文档。
