在Excel中,MATCH函数用于查找一个值在数组中的相对位置。这个函数非常有用,特别是当你需要基于某个值从另一个列表或数组中获取对应的信息时。以下是MATCH函数的基本使用方法和案例介绍。
函数语法
MATCH(lookup_value, lookup_array, [match_type])
lookup_value:必填参数。要在lookup_array中查找lookup_value的值。lookup_array:必填参数。要搜索的单行或单列。[match_type]:可选参数,如果省略match_type,它默认为1。该参数指定函数如何查找lookup_value的值。它可以是以下三个值之一:1:找到小于或等于lookup_value的最大值。数组必须按升序排列。0:找到与lookup_value完全匹配的值。数组可以按任何顺序排列。-1:找到大于或等于lookup_value的最小值。数组必须按降序排列。
可以把match_type设置为1或-1时当作时模糊匹配,设置成0时是精确匹配
示例1:模糊匹配
假设你有一个按升序排列的数字列表在A1:A6,你想查找数字8在这个列表中的位置。你可以在另一个单元格中输入以下公式:
=MATCH(8,A1:A6,1)
该公式返回的结果是4。因为小于或等于8数字中的最大值是6,而6在A1:A6中的位置是4。

另外,公式=MATCH(8,A1:A6,1)也可以替换成=MATCH(8,{1,3,5,6,9,10},1)。即把lookup_array的数据直接放进公式里,不引用其他单元格中的数据,这样对于保持公式的独立性有较大的好处。

注意,如果lookup_value在lookup_array中找不到,MATCH函数将返回一个错误。为了避免这个错误,可以使用IFERROR函数与MATCH结合,以提供一个备用值或处理错误情况。以下公式中,因为数据中没有小于或等于0的数字,所以会返回结果提示"无符合条件数据"。
=IFERROR(MATCH(0,{1,3,5,6,9,10},1),"无符合条件数据")
示例2:精确匹配
假设A1:A3分别记录了如下数据,你想查找C3单元格数据在这个列表中的位置。你可以在另一个单元格中输入以下公式:
=MATCH(C3,A1:A3,0)或=MATCH(C3,{"优秀","良好","较差"},0)
因为良好这一记录排在第二个,所以该公式返回的结果是2。
