在本文中,我将展示与 Excel 其他查找函数相比,MATCH() 函数有哪些独特之处。
MATCH() 的独特之处在于,它不像 VLOOKUP() 或 HLOOKUP() 那样返回实际的值,而是返回某个值所在的位置,在很多场景下这都会非常有用——让我们来看看如何使用它。
快速答案
要使用 MATCH() 函数查找某个值的位置:
例如,我在 A2:B6 区域有水果及其销量的列表,我想在该列表中找到 Orange 的位置。为此,我输入以下公式并按下 Enter:
=MATCH(“Orange”, A2:A6, 0)技术支持
这将显示 4,因为 Orange 是列表中的第 4 个水果。

使用 MATCH() 函数。图片来源:作者。
理解 Excel MATCH()
使用 MATCH() 的方式不止一种,不同的用法会影响结果。让我们更详细地理解它,便于您选择最适合自己的方法。
什么是 MATCH() 函数?
Excel 中的 MATCH() 函数返回某个值在列表中的位置。它不会返回实际的值,而是告诉我们该值位于哪里。当我们需要知道位置而非值本身时(尤其是做动态查找时),它最为好用。
MATCH() 函数的语法
MATCH() 的语法是:
MATCH(lookup_value, lookup_array, [match_type])技术支持
其中:
使用 MATCH() 前需要了解的要点
在使用 MATCH() 之前,有一些小提示值得了解,可帮助您避免错误并简化操作:
-
MATCH() 不区分大小写,因此 apple、Apple 和 APPLE 被视为相同。
-
如果处理文本并将 match_type 设为 0,可以使用通配符,例如用 * 表示多个字符,用 ? 表示单个字符。
-
如果 MATCH() 找不到目标值,会返回 #N/A 错误。
Excel MATCH() 的基础用法示例
了解了 MATCH() 是什么以及如何工作之后,让我们通过几个示例看看如何使用它:
示例 1:查找数字的位置
假设我在单元格 A2:A7 有一串数字,想要找出数字 40 在该列表中的位置。可以像这样使用 MATCH() 函数:
=MATCH(40, A2:A7, 0)技术支持
也可以将查找值换成单元格引用。
=MATCH(D1, A2:A7, 0)技术支持
看左侧 Excel 行号,您会发现数字 40 在第6行。但结果显示为5。这是因为我们从 A2 开始计数,所以从那里开始计数时,得到的是5 而不是6。

使用 MATCH() 函数查找数字的位置。图片来源:作者。
示例 2:查找文本值的位置
我在单元格 A2:A7 有一列球员,在单元格 B2:B7 有他们的得分,按升序排序。我想查找球员Emily 的位置。为此,我的公式如下:
=MATCH(E1,A2:A6, 0)技术支持
该公式在 A2:A7 区域中搜索单元格 D1 的值,并返回 3,因为Emily 是列表中的第 3 位。

使用 MATCH() 函数查找文本的位置。图片来源:作者。
Excel 中的模糊匹配与通配符匹配
有时我们处理的数据并不完美——可能存在拼写错误、不同写法或格式混乱。在这种情况下,模糊匹配与通配符匹配可以帮助我们清理数据。
模糊匹配
模糊匹配会在不同列表中找到相似但不完全相同的记录。当存在细微差异或拼写错误(如 Frank 与 Feank)时,这很有用。
我有两个数据集:客户订单列表和会员忠诚度计划。我想检查哪些客户的订单已经在忠诚度计划中,即使因为拼写错误、昵称或格式差异而有所不同。VLOOKUP() 在这里不适用,因为姓名并非完全匹配。
步骤 1:将数据转换为表格
-
选中客户订单,按下 Ctrl + T。
-
选中忠诚度计划会员,按下 Ctrl + T。
确保两个表之间有空间,以保持分离。
步骤 2:将数据加载到 Power Query
- 单击客户订单中的任意位置,并将其命名为Orders_Table。
- 转到数据 > 获取数据 > 自表/区域。
- 关闭并加载,将其加载到 Power Query。
- 对忠诚度计划会员重复步骤 1–3,并将其命名为Loyalty_Table ,但这次选择关闭并加载到,并将其加载到同一个 Excel 工作表。
现在,两个表都已加载到 Power Query。

将表加载到 Power Query。图片来源:作者。
步骤 3:使用模糊匹配合并表格
- 转到数据 > 获取数据 > 合并查询 > 合并查询。
- 在合并窗口中,选择第一个表(Orders_Table)和第二个表(Loyalty_Table)
- 在两个表中都选择客户名称列。
- 勾选使用模糊匹配复选框。
- 展开下拉菜单,将相似度阈值设置为0.3(允许拼写错误或昵称等一定差异)。

使用模糊匹配合并表格。图片来源:作者。
Power Query 现在会匹配相似而非完全相同的姓名。
步骤 4:展开匹配的数据
- 单击匹配列旁的展开图标。
- 从Loyalty_Table 中选择客户名称,然后单击确定。
- 关闭并加载结果回到 Excel。
您可以在下图中看到,模糊查找已自动匹配了姓名存在差异的客户。

使用模糊匹配合并的表格。图片来源:作者。
通配符匹配
当我们只知道部分信息时,通配符匹配可以帮助我们找到姓名或数值。在处理类似条目或记忆模糊时尤为有用。我们可以使用两种通配符:
它们的用法如下:
-
A* 匹配任何以 A 开头的内容。
-
*A 匹配任何以 A 结尾的内容。
-
*A* 匹配任何在任意位置包含 A 的内容。
例如,要找出姓名以e 结尾的人,我使用:
=MATCH("*e", A2:A11, 0)技术支持
如下图所示,公式返回 3,因为姓名 Charlie 以e 结尾。

使用通配符查找位置。图片来源:作者。
将 MATCH() 与其他 Excel 函数组合
MATCH() 搭配其他函数一起使用会更强大。它让我们的公式更灵活,也更易维护。让我们来看看。
将 MATCH() 与 INDEX() 结合
MATCH() 常与 INDEX() 配合用于强大的查找。与 VLOOKUP() 只能从左向右查找不同,INDEX() 与 MATCH() 搭配可以实现任意方向的查找。
例如,我有一份球员及其得分的列表,想要找到 Brian 的得分。可使用以下公式:
=INDEX(B2:B11,MATCH("Brian",A2:A11,0))技术支持
若使用单元格引用,公式如下:
=INDEX(B2:B11, MATCH(E1, A2:A11, 0))技术支持

组合使用 INDEX() 与 MATCH()。图片来源:作者。
在 VLOOKUP() 中用 MATCH() 动态选择列
我们知道 VLOOKUP() 需要手动输入结果所在的列号。如果列发生变化,就必须更新公式。为避免这种情况,我们可以用 MATCH() 自动找到正确的列。
例如,我有一个数据集,想要查找 Emily 所在的团队名称。使用 VLOOKUP() 时,公式如下:
=VLOOKUP(F1, A2:C12, 3, FALSE)技术支持
该公式只能从左到右查找,且列号 3 是固定的,如果列发生变化,就需要手动更新公式。
因此,我们可以不在 VLOOKUP() 中硬编码列号,而是像这样组合 MATCH():
=VLOOKUP(F1, A2:C12, MATCH("Team", A1:C1, 0), FALSE)技术支持
在该公式中,MATCH("Team", A1:C1, 0) 会找出哪一列包含Team 并返回列号。随后,VLOOKUP(F1, A2:C4, 3, FALSE) 将从第 3 列提取数据,而不是依赖固定数值。

组合使用 VLOOKUP() 与 MATCH()。图片来源:作者。
结合 EXACT() 实现区分大小写的 MATCH()
默认情况下,MATCH() 忽略大小写,因此 Apple 和 apple 会被视为相同。如果需要区分大小写的搜索,我们需要将 MATCH() 与 EXACT() 函数组合,如下:
=MATCH(TRUE, EXACT(A2:A7, D2), 0)技术支持
这是一个数组公式,因此请按 Ctrl + Shift + Enter。 在该公式中,EXACT(A2:A4, "Emily") 会检查每个姓名,仅对完全匹配返回 TRUE。随后 MATCH(TRUE, ...) 会找到第一个 TRUE 并返回其位置。

组合使用 EXACT() 与 MATCH()。图片来源:作者。
结语
MATCH()、通配符与模糊匹配一开始可能有些上手难度,但多练习就能为我们节省大量时间。它们在处理凌乱数据或需要更灵活的查找方式时尤其有用。
如果您想进一步学习,可以查看我们的 Excel 数据分析课程。或浏览我们的 Excel 基础技能路径,夯实基础,提升使用此类函数的信心。
起初可能会犯错,但别着急,多尝试几次就能逐渐熟悉 Excel 的用法。
在本文中,我将展示与 Excel 其他查找函数相比,
MATCH()函数有哪些独特之处。MATCH()的独特之处在于,它不像VLOOKUP()或HLOOKUP()那样返回实际的值,而是返回某个值所在的位置,在很多场景下这都会非常有用——让我们来看看如何使用它。快速答案
要使用
MATCH()函数查找某个值的位置:单击一个空白单元格作为结果单元格
输入
=MATCH(然后用引号输入查找值
选择
lookup_array。输入匹配类型(精确匹配用
0),然后按下Enter。例如,我在 A2:B6 区域有水果及其销量的列表,我想在该列表中找到 Orange 的位置。为此,我输入以下公式并按下 Enter:
这将显示 4,因为 Orange 是列表中的第 4 个水果。
使用 MATCH() 函数。图片来源:作者。
理解 Excel MATCH()
使用
MATCH()的方式不止一种,不同的用法会影响结果。让我们更详细地理解它,便于您选择最适合自己的方法。什么是 MATCH() 函数?
Excel 中的
MATCH()函数返回某个值在列表中的位置。它不会返回实际的值,而是告诉我们该值位于哪里。当我们需要知道位置而非值本身时(尤其是做动态查找时),它最为好用。MATCH() 函数的语法
MATCH()的语法是:其中:
lookup_value是我们要在lookup_array中查找的值。lookup_array是用于查找该值的列表。match_type(可选)指定查找方式。1(默认)返回小于或等于lookup_value的最大值(列表必须按升序排序)。0返回精确匹配。-1返回大于或等于所查找值的最小值(列表必须按降序排序)。使用 MATCH() 前需要了解的要点
在使用
MATCH()之前,有一些小提示值得了解,可帮助您避免错误并简化操作:MATCH()不区分大小写,因此 apple、Apple 和 APPLE 被视为相同。如果处理文本并将
match_type设为0,可以使用通配符,例如用*表示多个字符,用?表示单个字符。如果
MATCH()找不到目标值,会返回#N/A错误。Excel MATCH() 的基础用法示例
了解了
MATCH()是什么以及如何工作之后,让我们通过几个示例看看如何使用它:示例 1:查找数字的位置
假设我在单元格
A2:A7有一串数字,想要找出数字40在该列表中的位置。可以像这样使用MATCH()函数:也可以将查找值换成单元格引用。
看左侧 Excel 行号,您会发现数字
40在第6行。但结果显示为5。这是因为我们从A2开始计数,所以从那里开始计数时,得到的是5 而不是6。使用 MATCH() 函数查找数字的位置。图片来源:作者。
示例 2:查找文本值的位置
我在单元格
A2:A7有一列球员,在单元格B2:B7有他们的得分,按升序排序。我想查找球员Emily 的位置。为此,我的公式如下:该公式在
A2:A7区域中搜索单元格D1的值,并返回3,因为Emily 是列表中的第 3 位。使用 MATCH() 函数查找文本的位置。图片来源:作者。
Excel 中的模糊匹配与通配符匹配
有时我们处理的数据并不完美——可能存在拼写错误、不同写法或格式混乱。在这种情况下,模糊匹配与通配符匹配可以帮助我们清理数据。
模糊匹配
模糊匹配会在不同列表中找到相似但不完全相同的记录。当存在细微差异或拼写错误(如 Frank 与 Feank)时,这很有用。
我有两个数据集:客户订单列表和会员忠诚度计划。我想检查哪些客户的订单已经在忠诚度计划中,即使因为拼写错误、昵称或格式差异而有所不同。
VLOOKUP()在这里不适用,因为姓名并非完全匹配。步骤 1:将数据转换为表格
选中客户订单,按下
Ctrl + T。选中忠诚度计划会员,按下
Ctrl + T。确保两个表之间有空间,以保持分离。
步骤 2:将数据加载到 Power Query
现在,两个表都已加载到 Power Query。
将表加载到 Power Query。图片来源:作者。
步骤 3:使用模糊匹配合并表格
使用模糊匹配合并表格。图片来源:作者。
Power Query 现在会匹配相似而非完全相同的姓名。
步骤 4:展开匹配的数据
您可以在下图中看到,模糊查找已自动匹配了姓名存在差异的客户。
使用模糊匹配合并的表格。图片来源:作者。
通配符匹配
当我们只知道部分信息时,通配符匹配可以帮助我们找到姓名或数值。在处理类似条目或记忆模糊时尤为有用。我们可以使用两种通配符:
*匹配任意数量的字符(例如,Jo* 可匹配 John 和 Jonathan)。?匹配单个字符(例如,J?ck 可匹配 Jack,但不匹配 Jake)。它们的用法如下:
A*匹配任何以 A 开头的内容。*A匹配任何以 A 结尾的内容。*A*匹配任何在任意位置包含 A 的内容。例如,要找出姓名以e 结尾的人,我使用:
如下图所示,公式返回
3,因为姓名 Charlie 以e 结尾。使用通配符查找位置。图片来源:作者。
将 MATCH() 与其他 Excel 函数组合
MATCH()搭配其他函数一起使用会更强大。它让我们的公式更灵活,也更易维护。让我们来看看。将 MATCH() 与 INDEX() 结合
MATCH()常与INDEX()配合用于强大的查找。与 VLOOKUP() 只能从左向右查找不同,INDEX() 与 MATCH() 搭配可以实现任意方向的查找。例如,我有一份球员及其得分的列表,想要找到 Brian 的得分。可使用以下公式:
若使用单元格引用,公式如下:
组合使用 INDEX() 与 MATCH()。图片来源:作者。
在 VLOOKUP() 中用 MATCH() 动态选择列
我们知道
VLOOKUP()需要手动输入结果所在的列号。如果列发生变化,就必须更新公式。为避免这种情况,我们可以用MATCH()自动找到正确的列。例如,我有一个数据集,想要查找
Emily所在的团队名称。使用VLOOKUP()时,公式如下:该公式只能从左到右查找,且列号
3是固定的,如果列发生变化,就需要手动更新公式。因此,我们可以不在
VLOOKUP()中硬编码列号,而是像这样组合MATCH():在该公式中,
MATCH("Team", A1:C1, 0)会找出哪一列包含Team 并返回列号。随后,VLOOKUP(F1, A2:C4, 3, FALSE)将从第 3 列提取数据,而不是依赖固定数值。组合使用 VLOOKUP() 与 MATCH()。图片来源:作者。
结合 EXACT() 实现区分大小写的 MATCH()
默认情况下,
MATCH()忽略大小写,因此 Apple 和 apple 会被视为相同。如果需要区分大小写的搜索,我们需要将MATCH()与EXACT()函数组合,如下:这是一个数组公式,因此请按
Ctrl + Shift + Enter。 在该公式中,EXACT(A2:A4, "Emily")会检查每个姓名,仅对完全匹配返回TRUE。随后MATCH(TRUE, ...)会找到第一个TRUE并返回其位置。组合使用 EXACT() 与 MATCH()。图片来源:作者。
结语
MATCH()、通配符与模糊匹配一开始可能有些上手难度,但多练习就能为我们节省大量时间。它们在处理凌乱数据或需要更灵活的查找方式时尤其有用。如果您想进一步学习,可以查看我们的 Excel 数据分析课程。或浏览我们的 Excel 基础技能路径,夯实基础,提升使用此类函数的信心。
起初可能会犯错,但别着急,多尝试几次就能逐渐熟悉 Excel 的用法。