MATCH和INDEX函数都是查找函数。MATCH是找出制定行和指定列交叉处的单元格的值或值的引用。
语法
=MATCH(查找对象,查找范围,查找方式)
第一个参数查找对象,就是要查找的值;
第二个参数查找范围,就是存放数据的区域;
第三个参数查找方式,0表示精确查找,无须排序,找不到返回错误值,支持通配符;一种是模糊查找,1或-1表示模糊查找,查找方式为1时须升序排序,找不到返回小于查,找对象的最大值,不支持通配符;查找方式为-1时须降序排序,找不到返回小于查找对象的最小值,不支持通配符。
查找方式为空(逗号后为空),默认为0精确查找;查找方式省略(没有逗号及参数),默认为1模糊查找;
=INDEX(数据范围,行号,列号,第几块数据范围)
第一个参数数据范围,就是存放数据的区域;
第二个参数行号,就是要找的数据位于这个数据范围里面的第几行,当数据范围只有一行时参数可以为空;
第三个参数列号,就是要找的数据位于这个数据范围里面的第几列,当数据范围只有一列时参数可以为空;
第四个参数第几块数据范围,当数据范围是多块不连续的区域的时,要指出是第几块数据范围,省略默认第一块数据范围。
示例
MATCH基本用法
查找“学生4”的位置:=MATCH(A11,A2:A8,0)
公式中A11是查找对象“学生4”;
A2至A8单元格是查找范围区域;
第三个参数0,表示精确查找,最终返回4,“学生4”在查找范围内是第四个。
查找“数学”的位置:=MATCH(A12,B1:D1,0)
公式中A12是查找对象“数学”;
B1至D1单元格是查找范围区域;
第三个参数0,表示精确查找,最终返回2,“数学”在查找范围内是第二个。
精确查找,参数为0时,数据无须排列,查找19在数据区域A2到A9单元格中的位置:
=MATCH(B11,A2:A9,0) 参数0可以为空,写为=MATCH(B11,A2:A9,)
模糊查找,参数为1时,数据须升序排列,查找25在数据区域E2到E9单元格中的位置,数据中没有25返回小于25的最大值20的位置4:
=MATCH(F11,E2:E9,1),参数1可以省略,写为=MATCH(F11,E2:E9)
模糊查找,参数为-1时,数据须降序排列,查找80在数据区域I2到I9单元格中的位置,数据中没有80返回大于80的最小值81的位置3:
=MATCH(J11,I2:I9,-1)
INDEX基本用法
查询“学生3”的“数学”成绩:
=INDEX(B2:D8,3,2)
B2至D8单元格是数据范围区域,在数据范围中查找“学生3”所在的第三行,“数学”成绩所在的第二列值78。
INDEX与MATCH嵌套使用
查询“学生3”的“数学”成绩:
=INDEX(B2:D8,MATCH(A10,A2:A8,0),MATCH(B10,B1:D1,0))
B2至D8单元格是数据范围区域;
MATCH(A10,A2:A8,0)返回“学生3”所在的行3;
MATCH(B10,B1:D1,0)“数学”成绩所在的列值2;
原公式也就是=INDEX(B2:D8,3,2)。
MATCH和INDEX函数一般比较少单独使用,通常与其他函数嵌套使用。尤其是MATCH与INDEX组合使用几乎可以解决大部分查找问题。