在Excel中,提到数据查找,就不得不说INDEX函数和MATCH函数这对黄金组合,这两个函数的配合使用能够实现大多数情况下的数据查找,且效率非常高。 INDEX函数基本用法INDEX函数是最重要的引用函数之一,通过指定相应行列编号,返回对应位置的元素,它的语法如下: INDEX(array/reference,row_num,[col_num])
下面举例说说INDEX函数的基本用法。 1. 参数array为一列数据时。如图1所示,在C1单元格输入公式: =INDEX(A:A,4) 公式返回A列第4个单元格的数据,即“马娅娅”。 图1 2. 参数为一行数据时。 如图2所示,在B3单元格输入公式: =INDEX(1:1,4) 同样的,公式返回第1行第4个单元格的数据,即“马娅娅”。 图2 3. 参数为多行多列时。 此时,需要同时指定row_num和col_num两个参数。如图3所示,在B9单元格输入公式: =INDEX(A1:H7,4,2) 公式返回A1:H7区域的第4行第2列数据,即“马娅娅”。 图3 4. 参数row_num为0时。 此时公式表示对某一列的引用,如图4所示,在B9单元格输入公式: =SUM(INDEX(A1:H7,0,3)) 公式返回A1:H7区域第3列数据即语文成绩之和。 图4 MATCH函数基本用法MATCH函数是Excel中重要的查找函数,他通过在单元格区域中搜索指定值,返回该值在查找行或列的索引位置,它的语法如下: MATCH(lookup_value,lookup_array,[match_type])
下面举例说说MATCH函数的基本用法。 比如我们在图5的B3单元格输入公式: =MATCH(A3,1:1) 公式返回A3单元格中的内容“马娅娅”在第一行数据的索引值4。 图5 INDEX+MATCH函数组合实现精确查找如图6所示的一张数据表,我们用INDEX函数和MATCH函数进行数据查找。 图6 1. 常规查找。我们在K2单元格输入公式: =INDEX(C:C,MATCH(J2,B:B,0)) 首先用MATCH函数在B列数据中查找J2单元格即“马娅娅”所在的列索引,结果为4,然后用INDEX函数在C:C索引为4的位置,引用C4单元格中的数据85。 图7 2. 查找一系列值。比如现在要根据姓名查找各科成绩,在K2单元格输入公式: =INDEX(C:C,MATCH($J2,$B:$B,0)) 注意这里的C:C是相对引用,$J2时混合引用,$B:$B是绝对引用,以保证公式在向右拖动的过程中MATCH查找位置不变,而INDEX引用位置C:C自动向右扩展。 图8 3. 逆向查找。比如现在要根据姓名查找对应班级,在K2单元格输入公式: =INDEX(A:A,MATCH(J2,B:B,0)) 这种查找方式和普通查找类似,但是相比于VLOOKUP函数就要好用得多。 图9 4. 查找指定列。在K2单元格输入如下公式: =INDEX($A:$H,MATCH($J2,$B:$B,0),MATCH(K$1,$1:$1,0)) 这第1个MATCH函数查找的是J2单元格“马娅娅”对应的行索引,第2个MATCH函数查找的是K1单元格的科目“数学”对应的列索引,最后通过INDEX函数定位到相应行和列,找到对应数据。 图10 这个查找方式有一个最大的优点就是,当我们改变查找科目的时候对应查找结果也会随之动态更新,非常方便。 图11 5. 多条件查找。比如我们要根据班级、姓名两个字段,查找学生对应的数学成绩,我们首先建立一个辅助列,在I2单元格输入公式'=A2&B2',将姓名和班级字符串进行连接,然后在M2单元格输入公式: =IFERROR(INDEX(D:D,MATCH(K2&L2,I:I,0)),'查无此人') IFERROR函数的作用是如果查找不到结果,返回错误提示“查无此人”。 图12
|
|