众所周知,Excel2013中最常用的查询功能是vlookup,比如根据员工的工号来查询他的考勤、工资等。并根据学生的考号来查询他的成绩。这个最流行的vlookup函数可以帮助我们一键完成,但是vlookup函数有一个致命的缺点,就是查询值必须在查询区域的第一列。那么当查询值不在第一列时,我们如何完成查询呢?
1.vlookup函数正向查找
为了和后向搜索做个比较,我们先来看vlookup函数的前向搜索,用工号来找名字。
=VLOOKUP(E5,A2:B11,2,0)的意思是在从A2到B10的搜索区域中找到与第一列中的E5相同的作业号,然后返回该区域中与之对应的第二列(即名称列)的名称。这是vlookup函数的正向查找,所以现在我想用名字作为查找值。在这个区域找到名字对应的工号该怎么做?
2.2.vlookup函数1的反向查找
反向查找的第一种方法也是使用vlookup函数和if函数来重建数组。这个公式的用法是用IF ({1,0},B2:B11,A2:A11)返回一个多行两列的内存数组,包含名字和最后一个作业号,这样就满足了vlookup函数的查找值应该在第一列的要求,查找就可以顺利进行了。
3.3.vlookup函数II的反向查找
vlookup函数反向查找的第二种方法是用choose函数重建一个内存数组。choose ({1,2},B2:B11,A2:A11)也返回一个多行两列的内存数组,其中包含名字和最后一个作业号。不像if,choose函数变成了{1,2},这点我们要注意。
4.4 .索引和匹配函数的组合
=INDEX(A2:A11,MATCH(E8,B2:B11,0)).首先,公式使用单元格B2到B10中match函数的单元格E8的名称的相对位置5,这是该区域所在的行,然后使用它作为index函数的索引值,返回单元格A2到A11中相应位置的内容。这个公式看似繁琐,但实际上其组合灵活多变,可以从左到右、从上到下进行搜索。
5 .查找功能
=lookup (1,0/(E8=B2:B11),A2:A11)这是经典lookup函数的用法。首先用E8=B2: B11得到一组逻辑值,然后将这些逻辑值除以0得到一个由0和错误值组成的内存数组,然后用1作为查询值在刚刚得到的内存数组中进行查询。如果查找函数找不到它,
6.以上四种反向查询方法的总结
本文介绍了四种反向查询的方法,那么它们之间有什么区别呢?如果有多个查询结果,也就是我们查询一个名字的时候,有多个工号,说明这个公司是同名的。此时,前三个反向查找公式都返回第一个符合条件的值,而查找函数返回最后一个符合条件的值。这一点大家要特别注意。
以上是Excel2013在查询值不在第一列的情况下如何完成查询方法的介绍。操作很简单。你学会了吗?希望能对大家有所帮助!