INDEX+MATCH经典函数组合快速查找相对应的数据

今天我们介绍一种黄金组合,INDEX+MATCH函数组合,如下图所示,我们要通过两个条件姓名和科目来查询对应的信息

图片[1]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

那么我们在B10单元格中输入公式

=INDEX(A2:F7,MATCH(A11:A12,B2:B7,0),MATCH(B10:D10,A1:F1,0))

回车之后就可以得到如下结果

图片[2]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

在这里我们不再是简单的线性思维,它不是直接的在问Tom的数学成绩是多少?而是使用了一种定位的坐标思维,这两个函数的组合的背后意义就是在问,请先定位Tom在数据表中的行号,然后再定位数学在表头中的列号,最后用这两个坐标去数据表中查找交叉值。

图片[3]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

接下来咱们把这个公式给一层层的剥开来详细的解释,

INDEX函数的作用是根据给定的行号和列号,从一个指定的数据区域中返回相对应位置的值,

INDEX函数的语法结构,

图片[4]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

参数一数组,就是咱们的数据区域,行号和列号,就是要从这个区域里面来查找的。

图片[5]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

参数二行序数,就是说明了我们的查找值在数据区域中的第几行,比如说Tom就在查找区域的第一行

图片[6]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

参数三列序数,就是说明了我们的查找值在数据区域中的第几列,比如Tom就在查找区域的第一列。

如此的话INDEX函数只要知道了具体坐标就可以在数据区域中查找对应的值。

组件二MATCH函数

MATCH函数的作用是在一个区域中查找特定的值,并返回它在该区域中的相对位置

MATCH函数的语法结构,

图片[7]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

参数一查找值,就是我们要找的那个东西

参数二查找区域,就是我们要去哪里找这个东西

参数三匹配类型,这是关键。0 代表精确匹配,1 代表小于等于查找值的最大值(需区域升序),-1 代表大于等于查找值的最小值(需区域降序)。在大部分的情况下,我们都会使用 0,因为它精确匹配,最精准。

MATCH函数返回的是值的位置而不是值本身,这种性能正好和INDEX函数搭配,MATCH函数负责查找坐标,INDEX函数负责提取数值。

第一个MATCH函数公式MATCH(A11:A12,B2:B7,0),这是用来查找行号的,在这里我们不是一个一个学生的查找,而是同时查找A10和A11单元格里的两个学生,

图片[8]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

并返回他们在B2:B7区域中的位置

图片[9]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

最后会返回一个包含两个数字的数组

图片[10]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

第二个MATCH函数MATCH(B10:D10,A1:F1,0)这是列坐标生成器,它要做的也不是查找一个科目,而是同时查找B9到D9单元格里的三个科目,

图片[11]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

并返回他们在A1到F1区域的相对位置。

图片[12]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

最终会返回一个包含三个数字的数组

图片[13]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

通过这两个MATCH函数的组合,就给INDEX函数提供了一个行号数组和一个列号数组,INDEX函数接收到这两个数组后,会执行一种笛卡尔积式的提取,即用第一个行号去匹配所有的列号,再用第二个行号去匹配所有的列号,最终生成一个二维的结果矩阵。

截止到现在基本理论知识我们已经明白了,我们来介绍一下公式的具体执行流程。

步骤一 Excel会首先计算内部的第一个MATCH函数 MATCH(A10:A11,B2:B7,0)

MATCH(“Tom”,B2:B7,0) 在B2:B7中查找Tom,可以看到他在第一个位置,输出数字1

图片[14]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

MATCH(“Bob”,B2:B7,0) 在B2:B7中查找Bob,可以看到他在第六个位置,输出数字6

图片[15]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

由于在这里我们的查找值A10:A11是一个数组,MATCH函数会分别计算,然后将结果组合成一个垂直数组{1,6}

图片[16]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

输出结果

图片[17]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

步骤二计算列坐标数组

接着公式会计算第二个MATCH函数=MATCH(B9:D9,A1:F1,0)

=MATCH(“班级”,A1:F1,0) 在A1:F1区域中查找”班级”,就会输出它所在的位置1

图片[18]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

=MATCH(“语文”,A1:F1,0) 在A1:F1区域中查找”语文”,就会输出它所在的位置3

图片[19]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

=MATCH(“化学”,A1:F1,0) 在A1:F1区域中查找”化学”,就会输出它所在的位置6

图片[20]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

同样的由于查找值是一个数组,MATCH函数将会返回一个水平数组{1,3,6}

图片[21]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

步骤三将坐标代入INDEX函数,现在原始公式在内部已经被翻译成了=INDEX(A2:F7,{1;6},{1,3,6})

图片[22]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

接下来INDEX函数就会处理这两个数组,具体的执行逻辑是这样的,

1-取出行数组的第一个元素1

2-用行号1与列数组的每一个元素{1,3,6}进行组合,生成一行结果

=INDEX(A2:F7,1,1) 返回数据区域的第一行第一列交叉值

图片[23]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

=INDEX(A2:F7,1,3) 返回数据区域的第一行第三列交叉值

图片[24]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

=INDEX(A2:F7,1,6) 返回数据区域的第一行第六列交叉值

图片[25]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

这三个值就构成了结果区域的第一行

图片[26]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

同样的道理,INDEX函数会取出行号6与列数组的每一个元素再次组合,这里就不赘述了。

最终的结果,返回一个2*3列的二维数组,并返回到工作表中。

Excel同学会VIP会员

8套Excel核心课程+专属VIP答疑+定制插件,只要499元!

一次开通,长期有效

图片[27]-INDEX+MATCH经典函数组合快速查找相对应的数据-Excel表格学院,系统一站式学Excel!

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容