Lookup的用法详解(含实例和动画)
                    收集整理:山野雪人
VLOOKUP函数的用法
“Lookup”的汉语意思是“查”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP、HLOOKUO和LOOKUP。下面介绍VLOOKUP函数的用法。
一、功能
在表格的首列查指定的数据,并返回指定的数据所在行中的指定列处的数据。
二、语法
标准格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)
三、语法解释
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以写为:
VLOOKUP(需在第一列中查的数据,需要在其中查数据的数据表,需返回某列值的列号,逻辑值True或False)
1.Lookup_value为“需在数据表第一列中查的数据”,可以是数值、文本字符串或引用。
2.Table_array 为“需要在其中查数据的数据表”,可以使用单元格区域或区域名称等。
⑴如果 range_lookup 为 TRUE或省略,则 table_array 的第一列中的数值必须按升序排列,否则,函数 VLOOKUP 不能返回正确的数值。
如果 range_lookup 为 FALSE,table_array 不必进行排序。
⑵Table_array 的第一列中的数值可以为文本、数字或逻辑值。若为文本时,不区分文本的大小写。
3.Col_index_num 为table_array 中待返回的匹配值的列序号。
Col_index_num 为 1 时,返回 table_array 第一列中的数值;
Col_index_num 为 2 时,返回 table_array 第二列中的数值,以此类推。
如果Col_index_num 小于 1,函数 VLOOKUP 返回错误值 #VALUE!;
如果Col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
4.Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果不到精确匹配值,则返回小于lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果不到,则返回错误值 #N/A。
四、应用例子
  A        B        C      D
1  编号    姓名    工资  科室
2  2005001  周杰伦  2870  办公室
3  2005002  萧亚轩  2750  人事科
4  2005006  郑智化  2680  供应科
5  2005010  屠洪刚  2980  销售科
6  2005019  孙楠    2530  财务科
7  2005036  孟庭苇  2200  工  会
A列已排序(第四个参数缺省或用TRUE)
VLOOKUP(2005001,A1:D7,2,TRUE) 等于“周杰伦”
VLOOKUP(2005001,A1:D7,3,TRUE) 等于“2870”
VLOOKUP(2005001,A1:D7,4,TRUE) 等于“办公室”
VLOOKUP(2005019,A1:D7,2,TRUE) 等于“孙楠”
VLOOKUP(2005036,A1:D7,3,TRUE) 等于“2200”
VLOOKUP(2005036,A1:D7,4,TRUE) 等于“工  会”
VLOOKUP(2005036,A1:D7,4)      等于“工  会”
若A列没有排序,要得出正确的结果,第四个参数必须用FALAE
VLOOKUP(2005001,A1:D7,2,FALSE) 等于“周杰伦”
VLOOKUP(2005001,A1:D7,3,FALSE) 等于“2870”
VLOOKUP(2005001,A1:D7,4,FALSE) 等于“办公室” 霍政谚吻戏
VLOOKUP(2005019,A1:D7,2,FALSE) 等于“孙楠”
VLOOKUP(2005036,A1:D7,3,FALSE) 等于“2200”
VLOOKUP(2005036,A1:D7,4,FALSE) 等于“工  会”
五、关于TRUE和FALSE的应用
先举个例子,假如让你在数万条记录的表格中查给定编号的某个人,假如编号已按由小到大的顺序排序,你会很轻松地到这个人;假如编号没有排序,你只好从上到下一条一
条地查,很费事。
用VLOOKUP查数据也是这样,当第一列已排序,第四个参数用TRUE(或确省),Excel会很轻松地到数据,效率较高。当第一列没有排序,第四个参数用FALSE,Excel会从上到下一条一条地查,效率较低。
笔者觉得,若要精确查数据,由于计算机运算速度很快,可省略排序操作,直接用第四个参数用FALSE即可。
关于Lookup的实例
示例 1
 
 
 
 
 
 
 
 
下面的下示例是以指定的名字和月份为基础查一个数值.
 
 
 
 
=VLOOKUP()是用于沿第一列向下查指定的名字.
 
 
 
 
 
难点是如何向右查指定的月份.
 
 
 
 
对袁隆平爷爷说的话
 
 
 
解决这个难题的方法是使用=MATCH()函数.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
函数=MATCH()通过使用到名字的列表查对应月份.并推算该月份在列表中的位置.
 
 
不巧的是,因为月份列表的搜索范围与查数值的范围不等宽.
 
 
 
 
函数=MATCH()函数返回的数字比我们需要的数字少1, 因此在公式中用了+1进行调整.
 
 
函数=VLOOKUP()现在使用函数 =MATCH()得到的调整的数字n,在对应名字所在行向右查到该行第n列对应单元格的输入内容.
函数=VLOOKUP()中最后使用了 FALSE,因此左侧标题行不用排序。
 
 
 
 
 
 
元月
二月
三月
 
程香宙
10
80
97
 
刘冰
20
90
69
 
程龙
30
100
45
 
程坤
40
110
51
 
chengxiang
50
120
77
 
 
 
 
 
 
 
 
输入要查的名称:
程龙
 
 
 
输入要查的月份 :
三月
 
 
 
 
 
 
 
 
结果是:
45
 
 
 
 
=VLOOKUP(F60,C54:F58,MATCH(F61,D53:F53,0)+1,FALSE)
 
 
3
=MATCH(F61,D53:F53,0)
示例 2
这个示例使用函数=VLOOKUP() 查不同小车生产厂商不同配件的价值。
 
 
 
函数=VLOOKUP()向下扫描F列的标题行并查对应的位于C列的配件名称.
 
 
 
到配件后,函数VLOOKUP根据函数MATCH到的位置查到对应配件的价格。
 
 
 
公式中使用了绝对引用,为的是确保公式复制移动时函数 =HLOOKUP() 和=MATCH()引用的范围不发生变化。
 
 
 
 
 
 
 
 
 
厂商
配件
价值
 
查表格
 
 
 
 
日本丰田
火花塞
£50
 
 
日本丰田
福特
奔驰
 
奔驰
变速箱
£600
 
变速箱
500
450
600
 
福特
引擎
£1,200
 
引擎
1000
1200
800
 
奔驰
方向盘
£275
 
字体大小怎么改
方向盘
250
350
275
 
福特
火花塞
£70
 
火花塞
50
70
45
 
福特
刹车片
£290
 
刹车片
300
290
310
 
日本丰田
变速箱
£500
 
 
 
 
 
 
福特
引擎
£1,200
 
 
 
 
 
 
 
 
=VLOOKUP(C80,F74:I78,MATCH(B80,G73:I73,0)+1,FALSE)
 
示例 3
 
 
 
 
 
 
 
 
下面的示例是一个建材经销商提供的不同采购数量的折扣率
 
 
 
 
价格表中显示了砖,木材和玻璃的单价.
 
 
 
 
 
 
折扣表提供了不同产品不同采购数量的折扣率.
 
 
 
 
 
采购表是采购预算.
 
 
 
 
 
 
 
 
 
 
 
中国白酒品牌排名 
 
 
 
 
所有的预算结果显示在采购表中.
 
 
 
 
 
 
 
产品名称列表在C列.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
单价是从价格表中获得的.
 
 
 
 
 
 
 
FALSE选项表示产品名称在价格表中没有排序整理.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
使用FALSE强迫搜索精确匹配. 如果没有到,则函数显示错误.
 
 
 
 
 
 
 
 
 
 
 
 
 
折扣是从折扣表中获得的
 
 
 
 
 
 
 
如果采购数量与折扣表中某个值匹配,函数 =VLOOKUP将在折扣表中查正确的匹配折扣.
 
 
TRUE选项表示采购数量在折扣表中经过了升序排列整理.
 
 
 
 
 
使用TRUE允许模糊匹配.如果采购数量在折扣表中没有到匹配的值,则它下面较小的值将被使用.
 
比如采购数量为125将向下与100匹配,并且使用100对应列的折扣率.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
折扣表
 
 
价格表
 
 
木材
玻璃
 
 
£2
 
1
0%
0%
0%
 
 
木材
£1
 
100
6%
3%
12%
 
 
玻璃
£3
 
300
8%
5%
15%
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
采购表
 
 
 
 
项目
采购数量
单价
折扣
合计
 
 
 
 
125
£2
6%
£235
名字大全
 
 
 
 
木材
200
£1
3%
£194
 
 
 
 
玻璃
150
£3
12%
£396
 
 
 
 
225
£2
6%
£423
 
 
 
 
木材
50
£1
0%
£50
 
 
 
 
玻璃
500
£3
15%
£1,275
 
 
 
 
 
 
 
 
 
 
 
 
动漫排行榜
公式为:
 
 
 
 
 
 
 
 
单价
E118:  =VLOOKUP(C118,C106:D108,2,FALSE)
 
 
 
 
折扣
F118:  =VLOOKUP(D118,F106:I108,MATCH(C118,G105:I105,0)+1,TRUE)
 
 
合计
G118:  =(D118*E118)-(D118*E118*F118)
 
 
 
 
 
示例4
该示例使用 1 个大气压的空气值。
密度
粘度
温度
0.457
3.55
500
0.525
3.25
400
0.616
2.93
300
0.675
2.75
250
0.746
2.57
200
0.835
2.38
150
0.946
2.17
100
1.09
1.95
50
1.29
1.71
0
公式
说明(结果)
 
 
 
2.17
在 A 列中查 1,并从相同行的 B 列中返回值 (2.17)
=VLOOKUP(1,B128:D136,2)
100
在 A 列中查 1,并从相同行的 C 列中返回值 (100)
=VLOOKUP(1,B128:D136,3,TRUE)
#N/A
在 A 列中查 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.7,B128:D136,3,FALSE)
#N/A
在 A 列中查 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.1,B128:D136,2,TRUE)
1.71
在 A 列中查 2,并从相同行的 B 列中返回值 (1.71)
=VLOOKUP(2,B128:D136,2,TRUE)