使用 MATCH 查找位置
定位数值在行或列中的位置
使用 MATCH 查找位置 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
认识 MATCH 函数
如果说 INDEX 是根据位置获取值,那么MATCH 的作用正好相反:它会告诉您某个值位于什么位置。
您向 MATCH 提供要查找的值和要搜索的范围,它会返回一个数字,也就是找到该值的位置。
MATCH 不会返回值本身,只会返回值的位置。这个数字正是 INDEX 完成工作所需要的信息。
MATCH 语法
MATCH 接受三个参数:
- 查找值 — 您要查找的值
- 查找数组 — 要搜索的范围
- 匹配类型 — 匹配方式:0、1 或 -1
典型的调用形式是 =MATCH("Cherry", B2:B6, 0)。末尾的 0 表示“查找精确匹配”。
在日常查找中,您几乎总是会使用 0。
=MATCH("Cherry", B2:B6, 0)读取结果
假设 B2:B6 中存放着苹果、香蕉、樱桃、椰枣和无花果。运行 =MATCH("Cherry", B2:B6, 0) 会返回 3。
为什么是 3?因为樱桃是该范围中的第 3 个项目。MATCH 从 B2:B6 的起点开始计数,找到樱桃位于位置 3。
请注意,答案是位置编号,而不是“樱桃”这个值。这个位置就是您将在下一课中传递给 INDEX 的桥梁。
=MATCH("Cherry", B2:B6, 0)匹配类型 0 的重要性
第三个参数控制 MATCH 的搜索方式:
- 0 — 精确匹配;值必须被准确找到,数据顺序任意
- 1 — 小于或等于查找值的最大值;数据必须按升序排列
- -1 — 大于或等于查找值的最小值;数据必须按降序排列
要查找产品编号或姓名等特定项目时,请始终使用 0。其他模式适用于已排序的数值范围。
=MATCH("East", A2:A20, 0)数字同样可以匹配
MATCH 处理数字的效果和处理文本一样好。如果 C2:C8 中存放着订单 ID,而您想知道 ID 5042 位于哪里,可以写入 =MATCH(5042, C2:C8, 0)。
如果 5042 位于该范围的第 4 行,MATCH 就会返回 4。
查找值也可以是单元格引用。=MATCH(E1, C2:C8, 0) 会查找 E1 中输入的任何 ID,因此您更改 E1 后,搜索结果也会随之更新。
=MATCH(E1, C2:C8, 0)跨行搜索
MATCH 不在意您的范围是垂直排列还是水平排列,它只会计算位置。
假设第 1 行的 B1:M1 中存放着月份标题:一月、二月、三月等。要查找包含“三月”的列,可以写入 =MATCH("Mar", B1:M1, 0),结果为 3。
这种水平查找对于双向查找至关重要,因为在双向查找中,您需要分别匹配行位置和列位置。
=MATCH("Mar", B1:M1, 0)MATCH 无法找到值时
如果您要查找的值不存在于该范围中,MATCH 会返回 #N/A 错误,其含义就是“不可用”。
例如,在不包含芒果的列表上运行 =MATCH("Mango", B2:B6, 0) 会返回 #N/A。
这是正常行为,并不表示公式损坏。稍后,您将使用 IFNA 或 IFERROR 包装查找公式,以显示友好的提示信息,而不是直接显示原始错误。
=MATCH("Mango", B2:B6, 0)精确匹配不受顺序影响
match_type 0 的一大优点是,数据不需要排序。MATCH 会扫描整个范围,并返回它找到的第一个精确匹配的位置。
因此,无论您的区域列表是按字母顺序排列,还是完全杂乱无章,=MATCH("West", A2:A20, 0) 都能正确找到西部。
正因为如此,精确匹配才会成为几乎所有实际查找场景中的默认选择。
=MATCH("West", A2:A20, 0)对已排序数据进行近似匹配
匹配类型 1 适用于区间和等级。在按升序排列的阈值列表中,MATCH 会查找仍然小于或等于查找值的最大值。
如果 A2:A6 中存放着 0、100、500、1000 和 5000,并运行 =MATCH(750, A2:A6, 1),结果会是 3,因为 500 是不超过 750 的最高阈值。
这就是成绩表和定价表将一个值归入正确区间的方式。
=MATCH(750, A2:A6, 1)MATCH 很少能单独完成任务
MATCH 单独使用时,只会告诉您一个位置编号,作为最终答案并不十分有用。“客户位于第 7 行”只是一个中间结果。
您通常真正想要的是该位置上的数据,例如客户的电子邮箱、余额或状态。
这就是 MATCH 几乎从不单独使用的原因。在下一课中,您会将 MATCH 返回的位置直接传递给 INDEX,以提取您真正需要的值。
=MATCH(E1, A2:A100, 0)用两个 MATCH 处理两个维度
您可以运行两次 MATCH,分别确定行和列。一个 MATCH 通过搜索标签列来查找行位置,另一个 MATCH 通过搜索标题行来查找列位置。
例如,使用 =MATCH("East", A2:A10, 0) 查找包含“东部”的行,使用 =MATCH("Q3", B1:E1, 0) 查找包含“第三季度”的列。
这两个数字合在一起就能描述一个精确的单元格位置,可以直接交给 INDEX 使用。
=MATCH("East", A2:A10, 0)快速检查
请确认您理解 MATCH 返回的内容。
回顾:MATCH 查找位置
您已经学会了,MATCH 会返回某个值在范围内的位置:
=MATCH(lookup_value, lookup_array, match_type)- 使用 0 进行精确匹配;数据不需要排序
- 对升序数据使用 1,以查找正确的区间或等级
- 它既可以垂直工作,也可以水平工作;没有匹配项时会返回
#N/A
MATCH 为您提供位置,INDEX 则将位置转换为值。接下来,您将把它们组合成一个功能强大的查找公式。
=MATCH("Cherry", B2:B6, 0)常见问题解答
「使用 MATCH 查找位置」课时是免费的吗?
是的 — 「使用 MATCH 查找位置」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「使用 MATCH 查找位置」这节课中我会学到什么?
定位数值在行或列中的位置 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用 MATCH 查找位置」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。