vlookup 、Lookup、Index+Match查询引用实用技巧解读!

LOOKUP - 图1

Excel函数公式
提供最实用的Excel函数公式,办公技巧!
查询引用,是常用功能之一,经常使用的函数就是Vlookup,其实,除了Vlookup函数之外,还有Lookup、Index+Match等函数或组合都可以完成查询任务。


一、Vlookup函数。
作用:搜索指定单元格区域的第一列,然后返回该区域相同行上指定列的值。
语法结构:
=Vlookup(查找值,查找范围,返回值的列数,匹配模式)。也可以理解为:=Vlookup(找什么,在哪里找,返回范围中相对于第几列的值,精准查找还是模式查找)。
1、单条件查找。
目的:查询销售员对应的销量。
LOOKUP - 图2
方法:
在目标单元格中输入公式:=VLOOKUP(H3,B3:D9,3,0)。
解读:
H3为查找的值,B3:D9为查找范围;因为要返回的是销量,而在B3:D9范围中,销量在D列,也就是第3列,所以第三个参数为3,第四个参数“0”为精准查询的意思,如果要模糊查询,可以用代码:1。


2、多条件查询。
目的:查询销售员在相应地区的销量。
LOOKUP - 图3
方法:
在目标单元格中输入公式:=VLOOKUP(H3&I3,IF({1,0},B$3:B$9&E$3:E$9,D$3:D$9),2,0)。
解读:
公式中 IF({1,0},B$3:B$9&E$3:E$9,D$3:D$9)的作用是在后台重新组成形成新的数据范围,暨H列和I列组合成1列。


3、多列查询。
目的:返回销售员的所有信息。
LOOKUP - 图4
方法:
在目标单元格中输入公式:=VLOOKUP($B$13,$B$3:$E$9,COLUMN(C3)-1,0)。
解读:
多列查询的关键在返回列的相对位置,而Column函数正好可以返回当前单元格所在的列数,如果在用修正值加以修正,从而达到返回值列数的目的。


4、从右向左查询。
LOOKUP - 图5
方法:
在目标单元格中输入公式:=VLOOKUP(H3,IF({1,0},D3:D9,B3:B9),2,0)。
解读:
公式中IF({1,0},D3:D9,B3:B9)的作用是调换D列和B列的位置,形成新的数据范围。


5、划分区间等级。
LOOKUP - 图6
方法:
在目标单元格中输入公式:=VLOOKUP(D3,H$3:I$7,2)。
解读:
Vlookup函数的特点是当查找值在查找范围中无法精准匹配时(模糊查询),返回小于当前查询值的最大值对应的结果。例如:查询56时,查询列表中并没有56,小于56单最大的值为0,所以返回的结果为“不及格”。


6、使用通配符查询。
LOOKUP - 图7
方法:
在目标单元格中输入公式:=VLOOKUP(H3,B3:D9,3,0)。
解读:
Excel中的通配符有两个,一个是:“”(星号);另一个是“?”(问号);其中可以匹配任意长度的字符,而?仅能匹配一个字符。


二、Lookup函数。
Lookup函数具有两种使用形式。
1、向量形式。
功能:是指在单行或单列中查询指定的值,然后返回第二个单行或单列相同位置的值。
语法结构:=Lookup(查找值,查找值所在的范围,返回值所在的范围)。
前提条件:查找值所在范围的值必须按照升序排序,否则无法得到正确的结果。
目的:查询销售员的销量。
LOOKUP - 图8
方法:
1、以“销售员”为主要关键字进行“升序”排序。
2、在目标单元格中输入公式:=LOOKUP(H3,B3:B9,D3:D9)。
解读:
1、由于Lookup函数本身的特点,在查询数据前,首先要对查询值所在范围按照升序进行排序,否则无法得到正确的结果哦!
2、当查找值所在范围和返回值所在范围相同时,返回值范围可以省略哦!


2、数组形式。
作用:在对应数据源中的第一列或第一行中查找值,并返回最后一类或最后一行对应的值。
语法结构:=Lookup(查找值,查找值和返回值所在的范围)。
前提条件:查找值所在范围的值必须按照升序排序,否则无法得到正确的结果。
目的:查询销售员的销量。
LOOKUP - 图9
方法:
1、以“销售员”为主要关键字“升序”排序。
2、在目标单元格中输入公式:=LOOKUP(H3,B3:D9)。
解读:
1、由于Lookup函数本身的特点,在查询数据前,首先要对查询值所在范围按照升序进行排序,否则无法得到正确的结果哦!
2、使用数组形式查询时,查找的值必须在第一列,返回的值必须在最后一列哦!


3、单条件查询。
在实际的数据中,数据源不可能按照查找值所在的范围进行升序排序,为了解决这一难题,Lookup衍生除了其“变异”用法。
目的:查询销售员对应的销量。
LOOKUP - 图10
方法:
在目标单元格中输入公式:=LOOKUP(1,0/(B3:B9=H3),D3:D9)。
解读:
1、在学习Lookup函数的基础语法时,已经讲解过,要想得到正确的结果,对查找值所在范围的值必须进行升序排序,但在“单条件”查询时,并未对条件值所在范围的值进行升序排序,而是采用了奇怪的公式:查找值1,查询范围为:0/(B3:B9=H3)。这是为什么呢?
2、Lookup函数的特点:当在查询范围中找不到查询值时,Lookup函数就会进行匹配工作,原则是以小于查询值的最大值替代查询值。
3、当B3:B9=H3成立时,返回True,暨:1,不成立时返回False,及0。而0/0则返回错误,所以查找范围就变成一个以0和错误值组成的新数组,Lookup进行向下最大值匹配,从而返回0对应位置上的值。


4、多条件查询。
目的:查询销售员在相应地区的销量。
LOOKUP - 图11
方法:
在目标单元格中输入公式:=LOOKUP(1,0/((B3:B9=H3)(E3:E9=I3)),D3:D9)。
*解读:

其实多条件查询和单条件查询的原理是相同的,当两个或多个条件都成立时,返回True,暨1;否则返回False,暨0。


三、Index+Match组合法。
1、单列查询。
目的:返回销售员对应的销量。
LOOKUP - 图12
方法:
在目标单元格中输入公式:=INDEX(D3:D9,MATCH(H3,B3:B9,0))。
解读:
1、Index函数的作用为:返回给定的单元格区域中,行列交叉处的值或引用。语法结构:=Index(范围,行,[列])
2、Match函数的作用为:返回指定的值在指定范围中的相对位置。语法结构:=Match(定位置,定位的范围,匹配模式),其中“1”为:小于;“0”为:精准;“-1”为:大于。


2、多列查询。
目的:返回销售员对应的所有信息。
LOOKUP - 图13
方法:
在目标单元格中输入公式:=INDEX($B$3:$E$9,MATCH($B$13,$B$3:$B$9,0),MATCH(C$12,$C$12:E$12,0)+1)。
解读:
利用Match函数定位出当前值所在的行和列,然后用Index提取值。
实际工作中,凡是提到查找引用的,90%以上的人第一时间想到的肯定是VLOOKUP函数,但其实VLOOKUP函数有很多缺点啊,例如不能直接逆向查询等……但对于LOOKUP函数来说,都是小菜一碟。


一、LOOKUP函数功能及语法结构。
作用:从单行或单列或数组中查找对应的值。
语法结构:
LOOKUP函数有向量形式和数组形式两种语法结构。
1、向量形式:=LOOKUP(需要查询的值,查询在所在的范围,对应结果所在的范围)。
2、数组形式:=LOOKUP(需要查询的值,值所在的范围)。
其实最常用的并不是向量形式,也不是数组形式,而是“变异形式”。因为LOOKUP函数在如果按照默认的查询方式进行,必须对数据源的值进行升序排序。而“变异形式”则不需要。
语法结构如下:
=LOOKUP(1,0/(条件范围1=条件1)*(条件范围2=条件2)……(条件范围N=条件N),返回值范围)。


二、单条件查询。
目的:查询销售员对应的销量。
LOOKUP - 图14
方法:
在目标单元格中分别输入公式:=VLOOKUP(H4,B3:C9,2,0)、=LOOKUP(1,0/(B3:B9=H8),C3:C9)。


三、多条件查询。
目的:查询销售员在相应地区的销量。
LOOKUP - 图15
方法:
1、在目标单元格中输入公式:=VLOOKUP(H4&I4,IF({1,0},B3:B9&E3:E9,C3:C9),2,0)和=LOOKUP(1,0/((B3:B9=H8)(E3:E9=I8)),C3:C9)。
2、其中VLOOKUP函数需要用Ctrl+Shift+Enter填充。LOOKUP用普通的Ctrl+Shift填充。
*解读:

1、从上述的两个公式中,我们可以看出,LOOKUP实现多条件查询更为简单。
2、VLOOKUP函数不仅使用了数组和IF函数,而在填充时需要用Ctrl+Shift+Enter来填充,这对于新手来时是很容易出错的。


四、逆向查询。
目的:通过姓名查询工号。
LOOKUP - 图16
方法:
在目标单元格中分别输入公式:=VLOOKUP(I4,IF({1,0},C3:C9,B3:B9),2,0)、=LOOKUP(1,0/(C3:C9=I8),B3:B9)。
解读:
在逆向查询中,我们可以明显的感觉到LOOKUP函数简单的多,VLOOKUP函数查询时需要用IF函数来辅助完成。


结束语:
通过上述单条件,多条件以及逆向查询,我们了解了VLOOKUP函数和LOOKUP函数的用法和功能,并且对其实现过程的简易程度做了对比,相对于VLOOKUP函数来说,LOOKUP函数的实现过程和可操作性更强,更容易理解。