在Excel中,MATCH
函数用于在单元格区域中搜索特定的项,然后返回该项在此区域中的相对位置。
语法
MATCH(查找值, 查找数组, [匹配类型])
参数说明
- 查找值 (lookup_value):必需。您希望在“查找数组”中找到的值。它可以是具体的数值、文本、逻辑值(TRUE/FALSE),或者是对包含这些值的单元格的引用。
- 查找数组 (lookup_array):必需。要搜索的单元格区域(一维数组,即单行或单列)。函数会在这个区域中查找“查找值”。
- 匹配类型 (match_type):可选。一个数字,指定 Excel 如何匹配“查找值”与“查找数组”中的值。可以是以下三种值:
- 1 或 省略:查找小于或等于“查找值”的最大值。注意:“查找数组”必须按升序排列(例如:-1, 0, 1, 2, A, B, …),否则可能返回不正确的结果。
- 0:查找等于“查找值”的第一个值。注意:这是最常用的精确匹配方式。“查找数组”可以按任意顺序排列。对于文本查找,支持通配符
?
(代表任意单个字符)和*
(代表任意多个字符)。 - -1:查找大于或等于“查找值”的最小值。注意:“查找数组”必须按降序排列(例如:Z, Y, X, …, 2, 1, 0, -1, …),否则可能返回不正确的结果。
示例
假设在单元格区域 A1:A5
中依次输入了以下数值:3, 5, 7, 9, 11
。
- 示例 1 (精确匹配):
- 公式:
=MATCH(7, A1:A5, 0)
- 结果:
3
- 说明:在
A1:A5
区域中精确查找数值7
,它位于该区域的第 3 个位置。
- 公式:
- 示例 2 (近似匹配 – 小于或等于的最大值):
- 公式:
=MATCH(6, A1:A5, 1)
或=MATCH(6, A1:A5)
(省略匹配类型) - 结果:
2
- 说明:查找小于或等于
6
的最大值。5
是满足条件的数,它位于A1:A5
区域的第 2 个位置。注意:此例中数据是升序排列的,符合match_type=1
的要求。
- 公式:
- 示例 3 (近似匹配 – 大于或等于的最小值):
- 公式:
=MATCH(10, A1:A5, -1)
- 结果:
4
- 说明:查找大于或等于
10
的最小值。11
是满足条件的数,它位于A1:A5
区域的第 4 个位置。注意:此例中数据是升序排列的,不符合match_type=-1
要求的降序,但因为恰好有大于等于10的值且数据单调,结果碰巧正确。如果数据不是降序,结果可能错误。
- 公式:
- 示例 4 (文本精确匹配):
- 假设
B1:B3
包含:"苹果"
,"香蕉"
,"橙子"
。 - 公式:
=MATCH("香蕉", B1:B3, 0)
- 结果:
2
- 说明:在
B1:B3
区域中精确查找文本“香蕉”,它位于第 2 个位置。
- 假设
用法注意事项
- 精确匹配是首选:当您需要找到完全相同的值时,务必使用
匹配类型 = 0
。这是最安全、最常用的用法。 - 排序至关重要:当使用
匹配类型 = 1
时,确保“查找数组”是升序排列的;当使用匹配类型 = -1
时,确保“查找数组”是降序排列的。如果排序不正确,函数返回的结果很可能是错误的。 - 处理错误:如果
MATCH
函数在“查找数组”中找不到符合条件的值,它将返回错误值#N/A
。您可以使用IFERROR
函数来优雅地处理这种错误,例如:=IFERROR(MATCH(查找值, 查找数组, 0), "未找到")
。 - 文本匹配不区分大小写:
MATCH
函数在比较文本时,不区分字母的大小写。例如,查找 “APPLE” 和 “apple” 被视为相同。 - 通配符用于模糊查找:在
匹配类型 = 0
的文本查找中,可以使用?
代表任意单个字符,*
代表任意多个字符。例如,=MATCH("苹*", B1:B3, 0)
可以找到以“苹”开头的文本(如“苹果”)。 - 返回的是位置:
MATCH
函数返回的是“查找值”在“查找数组”中的相对位置(从1开始计数),而不是值本身。它常与INDEX
函数结合使用,构成强大的查找组合(INDEX
+MATCH
),以替代VLOOKUP
或HLOOKUP
。