MATCH 函数
提示: 尝试使用新的 XMATCH 函数,这是一种在任意方向工作的改进版本的 MATCH,默认情况下会返回完全匹配,因此使用起来比前一个版本更简单、更方便。
使用 MATCH 函数在 范围 单元格中搜索特定的项,然后返回该项在此区域中的相对位置。 例如,如果 A1:A3 区域中包含值 5、25 和 38,那么公式 =MATCH(25,A1:A3,0) 返回数字 2,因为 25 是该区域中的第二项。
提示: 当您需要项目在区域中的位置而非项目本身时,使用 MATCH 而不是 LOOKUP 函数之一。 例如,您可以使用 MATCH 函数提供 INDEX 函数的 row_num 参数值。
语法
MATCH(lookup_value, lookup_array, [match_type])
MATCH 函数语法具有下列参数:
-
lookup_value 必需。 要在 lookup_array 中匹配的值。 例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。
lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。 -
lookup_array 必需。 要搜索的单元格区域。
-
match_type 可选。 数字 -1、0 或 1。 match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。 此参数的默认值为 1。
下表介绍该函数如何根据 match_type 参数的设置查找值。
Match_type |
行为 |
1 或省略 |
MATCH 查找小于或等于 lookup_value 的最大值。 lookup_array 参数中的值必须以升序排序,例如:...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。 |
0 |
MATCH 查找完全等于 lookup_value 的第一个值。 lookup_array 参数中的值可按任何顺序排列。 |
-1 |
MATCH 查找大于或等于 lookup_value 的最小值。 lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 等等。 |
-
MATCH 返回匹配值在 lookup_array 中的位置,而非其值本身。 例如,MATCH("b",{"a","b","c"},0)返回 2,即“b”在数组 {"a","b","c"} 中的相对位置。
-
匹配文本值时,MATCH 函数不区分大小写字母。
-
如果 MATCH 函数查找匹配项不成功,它会返回错误值 #N/A。
-
如果 match_type 为 0 且 lookup_value 为文本字符串,您可在 lookup_value 参数中使用通配符 - 问号 (?) 和星号 (*) 。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)。
示例
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
农产品 |
计数 |
|
香蕉 |
25 |
|
橙子 |
38 |
|
苹果 |
40 |
|
梨 |
41 |
|
公式 |
说明 |
结果 |
=MATCH(39,B2:B5,1) |
由于此处无精确匹配项,因此函数会返回单元格区域 B2:B5 中最接近的下个最小值 (38) 的位置。 |
2 |
=MATCH(41,B2:B5,0) |
单元格区域 B2:B5 中值 41 的位置。 |
4 |
=MATCH(40,B2:B5,-1) |
由于单元格区域 B2:B5 中的值不是按降序排列,因此返回错误。 |
#N/A |