第一种:使用vlookup进行匹配,这个应该是大家最常用的方法,vlookup的基础用法非常简单,在单元格输入“=vlookup(查找的对象,查找的区域,查找的列数,精确查找or模糊查找)”。如图所示,若要查找三年级一班的总成绩。在单元格I2输入公式“=VLOOKUP(H2,A1:F13,6,0)”
其中”三年级一班合计“这个是我们要查找的对象。然后它所在的表格是A列,所以我们的开始范围就是A列,其次需要找的总成绩是在F列,所以我们查找的区域是“A1:F13”,这里大家需要注意的是,可以将“A1:F13”直接改成“A:F”是一样的,再接着就是A列到F列一共是6列,所以第三个参数就是6,最后的0是精确查找。这样我们就可以找到668这个总成绩了。
第二种:使用index函数和match函数的搭配来逆向匹配。
vlookup函数匹配的数据如果在我们查找数据的左边,我们就不能用vlookup函数了,还是上一张图,如果我们要匹配姓名为“亚索”所在班级的是多少时,这个时候单用vlookup就失效了。这个时候我们就需要用index函数和match函数的组合公式来进行匹配了。
先讲解一下index函数,index函数(查找的区域,行数,列数)什么意思呢。举个例子,如图所示。
我们的公式是“=INDEX(B1:C13,2,2)”,区域为“B1:C13”,其中行数为2,列数为2的值。得到就是23,如果列数改为1,那么返还的就是“亚索”这个值,但是如果我们的区域直选中了”B1:B13″这个区域的时候,我们的index函数就应该改为“=INDEX(B1:B13,2)”,因为我们所选中的区域只有一列,所以我们就只需要填写行数的参数。
接着,我们讲讲match函数。match函数(查找的值,区域,[-1,0,1])。同样的我们举个例子。如图所示:
我们要查找亚索在”B1:B13″中所在位置,得到是值是2。其中大家要注意的是我们用的0,0代表的就是等于我们要查找的值。另外两个参数一个是小于或者等于一个是大于或者等于,这里就不细讲了,在输入match函数的时候也会有提示。
最后我们用index+match就可以逆向匹配了。如图所示:
我们先用match函数找到亚索在B1:B13中的位置,然后再用index函数返回在A1:A13中对应位置的数据,那就是三年级一班了。同样index+match不仅仅用于逆向,正向匹配同样适用。
第三种:多条件连接匹配。如图所示:我们要查找三年二班盲僧的总成绩时,如果我们用以上2种方法的时候,就没有办法找到正确的值。
有一个办法就是加一个辅助列。将班级和姓名用连接符号连接起来,就可以用Vlookup或者index+match函数了。但是如果不允许改变原表的时候。这个我们需要用到数组公式来进行嵌套使用,用if或者choose函数。直接上结果。
choose函数
首先我们用choose函数,将A列和B列数据连接起来返回一个数组1,然后将F列总成绩的数据返回给数组2,最后在用vlookup去找对应的数据。我们用“计算公式”来分部给大家看一下。
大家可以看到有三年级二班盲僧和259的数据。相当于用choose函数给我们加了一个辅助列一样。他的原理就来自于此。同样if函数也是一样的。
这里给大家讲解一下“IF({1,0},A1:A13&B1:B13,F1:F13)”这个函数的意思。不知道大家对0和1这两个数字的概念强不强。但是大家在写Vlookup函数的时候如果写的是0和1,那就应该知道“1”代表的是“true”,“0”代表的是“false”,这样就好理解了。if函数如果第一个条件成立返回true的数据,不成立则返回false的值。那么用我们用{}就是给了一个true和一个false,那么返回的就是一个数组。一个是true,一个是false,用“公式计算”给大家看一下。
和choose是一样的道理。都是相当于加了一个辅助列,都是返回了一个数组的。然后用vlookup函数进行匹配。