达永编程网

程序员技术分享与交流平台

不用再觉得MATCH和INDEX函数很复杂了,它们其实挺简单的

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)。

MATCHINDEX函数一般比较少单独使用,通常与其他函数嵌套使用。尤其是MATCHINDEX组合使用几乎可以解决大部分查找问题。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言