今天我们来分享Excel中两个非常强大的查找函数:Index Match和Vlookup。它们都能帮助我们快速找到需要的数据,但在处理错序查找时,它们的表现却有所不同。

例子背景

假设我们有一个学生信息表,里面包含了学生的学号、姓名、班级、年龄、性别和成绩。

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

Vlookup的错序查找挑战

挑战:由于Vlookup要求查找值必须位于查找区域的第一列,而在这个例子中,姓名并不在第一列,因此直接使用Vlookup会遇到困难。

解决方案(不推荐,因为需要调整数据):

  1. 将姓名列(C列)和成绩列(F列)复制到新的位置,使姓名列成为第一列。
  2. 使用Vlookup进行查找。但这种方法会破坏原始数据的布局,增加出错的风险。

更好的解决方案(使用IF函数):

(1)求班级:

输入公式:=VLOOKUP(B14,IF({1,0},$C$2:$C$11,$B$2:$B$11),2,0)

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

利用IF函数,重新创建一个数据区域,即把原表中的班级列跟姓名列进行调换,IF({1,0},$C$2:$C$11,$B$2:$B$11):这部分是一个数组公式,它实际上创建了一个两列的数组,第一列是$C$2:$C$11,第二列是$B$2:$B$11。再用vlookup 求出班级。

(2)求成绩

输入公式=VLOOKUP(B14,$C$2:$F$11,4,0)

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

但这种方法仍然不够直观和灵活。

Index Match的错序查找优势

优势:不受查找值位置限制,可以直接在任意列中查找。

步骤

  1. 确定查找值:假设我们要查找“小刚”的成绩。
  2. 使用Match函数找到姓名在C列中的位置:输入=MATCH(B14,$C$2:$C$11,0)。这将返回“小刚”在姓名列(C列)中的位置,假设是3。

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

  1. 结合Index函数获取成绩:,输入=INDEX($A$2:$F$11,MATCH(B14,$C$2:$C$11,0),2)。

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

INDEX(区域,行,列 )表示在所有数据中查找第几行第几列。

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

MATCH("小刚",C:C,0)返回的是“小刚”在姓名列中的位置,即3。因此,整个公式的意思是:“在整个表中,找到第3行第2列的值”,也就是“小刚”的班级:3班。

求成绩,只要把公式中的列号改成6就可以。

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

为了不手动输入列号,只需再嵌套一个match函数:

=INDEX($A$2:$F$11,MATCH($B14,$C$2:$C$11,0),MATCH(C$13,$A$1:$F$1,0))

excel中index+match函数组合和vlookup的区别:错序查找优劣对比-趣帮office教程网

然后进行公式向右向左填充即可。

通过上面的例子,我们可以看到,在处理错序查找时,Vlookup虽然强大,但受到查找值位置的限制,而Index Match则更加灵活和方便。