描述
使用此函数可在单元格范围内搜索指定项,并返回该项在该范围内的行号。链式支撑。
此函数可用于查找列表或表格中特定值的行号。
句法
MATCH(lookup_value, lookup_array, [match_type])
输入
该函数接受以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
查找值 |
是的 | 你想在 lookup_array 中查找的值。 | 单元格引用、单元格区域、数字、文本字符串或公式,只要结果为上述任何一种即可。 |
查找数组 |
是的 | 搜索的单元格范围。 | 包含可能查找值的单元格范围。 |
匹配类型 |
不 | 指定 Excel 如何将 lookup_value 与 lookup_array 中的值进行匹配。 | 1(匹配小于或等于lookup_value的最大值)0(匹配第一个值 完全匹配 lookup_value-1(匹配大于或等于 lookup_value的最小值)如果省略,则默认值为 1。 |
实例
范例数据
| A | B | |
|---|---|---|
| 1 | 10 | 苹果 |
| 2 | 20 | 香蕉 |
| 3 | 30 | 樱桃 |
| 4 | 40 | 日期 |
示例公式
| 用例 | 公式 | 解释与结果 |
|---|---|---|
| 查找列表中某个精确值的相对位置。 | =MATCH(30,A1:A4,0) |
该公式的工作原理如下:
对于此数据集,此公式返回 3。 |
| 查找文本字符串在列表中的相对位置。 | =MATCH("Cherry",B1:B4,0) |
该公式的工作原理如下:
对于此数据集,公式返回 3。 |
| 找到已排序列表中小于或等于查找值的最大值的相对位置。 | =MATCH(25,A1:A4,1) |
该公式的工作原理如下:
对于此数据集,此公式返回 2。 |
| 按字母顺序查找小于或等于指定值的最后一个值。 | =MATCH("D",B1:B4,1) |
该公式的工作原理如下:
对于此数据集,此公式返回 3。 |
| 查找已排序列表中大于或等于查找值的最小值的相对位置。 | =MATCH(15,A1:A4,-1) |
该公式的工作原理如下:
对于此数据集,此公式返回 #N/A。 |
| 找出列中的最后一个数值。 | =MATCH(9.9E+307, B:B) |
该公式的工作原理如下:
对于此数据集,公式返回错误 #N/A。 |
| 返回列中最后一个数值单元格的值。 | =INDEX(B:B, MATCH(9.9E+307, B:B)) |
该公式的工作原理如下:
对于此数据集,公式返回 #N/A。 |
笔记
- MATCH 函数返回找到的项的位置,以数字形式表示。
- 如果 match_type 为 0,则 MATCH 查找第一个与
lookup_value完全相等的值。 - 如果 lookup_array 没有按预期排序,MATCH 函数可能会返回错误的结果,且没有任何错误提示。这是因为该函数一旦找到满足条件的值,就会停止搜索,因为它认为由于预期的排序,不会再有更好的匹配项。如果您不确定数据的排序方式,最好使用“0”(精确匹配)作为
match_type,或者在使用 MATCH 之前显式地对数据进行排序。- 如果 match_type 为 1,则 MATCH 查找小于或等于
lookup_value的最大值。lookup_array必须按升序排列。 - 如果 match_type 为 -1,则 MATCH 查找大于或等于
lookup_value的最小值。lookup_array必须按降序排列。
- 如果 match_type 为 1,则 MATCH 查找小于或等于
- 如果 MATCH 找不到匹配项,则返回 #N/A 错误。
- MATCH 函数不区分大小写。
使用技巧
- 如果您没有得到预期的结果,请检查您的
lookup_array是否已针对指定的match_type正确排序。 - 你可以使用 MATCH 和INDEX 来创建一个比 VLOOKUP更灵活的强大查找公式。页面 使用 INDEX-MATCH 创建灵活查找 提供了一个示例。
- 你可以将 MATCH 函数与其他函数(例如 MIN、 MAX或 AVERAGE )结合使用,以查找特定值在范围内的位置。