LOOKUPVLOOKUPMATCHINDEX函数应用举例.docx
《LOOKUPVLOOKUPMATCHINDEX函数应用举例.docx》由会员分享,可在线阅读,更多相关《LOOKUPVLOOKUPMATCHINDEX函数应用举例.docx(10页珍藏版)》请在冰豆网上搜索。
LOOKUPVLOOKUPMATCHINDEX函数应用举例
LOOKUP,VLOOKUP,MATCH,INDEX函数
1LOOKUP函数详解
LOOKUP函数具有两种语法形式:
向量型和数组型。
矢量形式的LOOKUP函数在一行或一列区域(称为向量)中查找值,然后返回另一行或一列区域中相同位置处的值。
数组形式的LOOKUP函数在数组的第一行或列中查找指定值,然后返回该数组的最后一行或列中相同位置处的值。
向量型的LOOKUP函数的语法是:
LOOKUP(lookup_value,lookup_vector,result_vector)。
向量型的LOOKUP函数语法其中的参数如下介绍:
第一,Lookup_value是LOOKUP在第一个矢量中搜索到的值。
Lookup_value可以是数字、文本、逻辑值,也可以是代表某个值的名称或引用。
第二,Lookup_vector是一个仅包含一行或一列的区域。
lookup_vector中的值可以是文本、数字或逻辑值。
说明:
lookup_vector中的值必须按升序顺序排列。
例如,-2、-1、0、1、2或A-Z或FALSE、TRUE。
否则,LOOKUP返回的值可能不正确。
大写和小写文本是等效的。
第三,Result_vector是一个仅包含一行或一列的区域。
它的大小必须与lookup_vector相同。
数组型的LOOKUP函数的语法是:
LOOKUP(lookup_value,array)
数组型的LOOKUP函数语法其中的参数如下介绍:
(1)Lookup_value是LOOKUP在数组中搜索到的值。
Lookup_value可以是数字、文本、逻辑值,也可以是代表某个值的名称或引用。
(2)如果LOOKUP找不到lookup_value,它会使用该数组中小于或等于lookup_value的最大值。
在档案管理、销售管理等数据表中,通常都需要进行大量的数据查询操作。
本实例通过LOOKUP函数建立公式,实现输入编号后即可查询员工的相关信息。
注意:
为了方便显示,只列举了有限条数的记录,在实际工作中一个数据表肯定不可能只有那么几条记录。
实例:
使用向量型的LOOKUP函数进行查询。
详见下图。
操作步骤介绍:
第一,首先建立查询列标识,并输入要查询的编号,如本例输入:
SN-001。
第二,选中B10单元格,输入公式:
=LOOKUP($A$10,$A$2:
$A$7,B2:
B7)
按下回车键,确定,即可得到员工编号为SN-001的姓名。
第三,选中B10单元格,向右复制公式,即可得到员工编号为SN-001的工资、所得税等信息。
第四,如果需要查询其他员工的信息,只需要在A10单元格中重新输入员工编号即可快速查询到该员工编号的相关信息。
向量型的LOOKUP函数是指在单行区域或单列区域中查找值,然后返回第二个单行区域或单列区域中相同位置的值。
2VLOOKUP函数详解
您可以使用VLOOKUP函数搜索某个单元格区域(区域:
工作表上的两个或多个单元格。
区域中的单元格可以相邻或不相邻。
)的第一列,然后返回该区域相同行上任何单元格中的值。
例如,假设区域A2:
C10中包含雇员列表,雇员的ID号存储在该区域的第一列,如下图所示。
如果知道雇员的ID号,则可以使用VLOOKUP函数返回该雇员所在的部门或其姓名。
若要获取38号雇员的姓名,可以使用公式=VLOOKUP(38,A2:
C10,3,FALSE)。
此公式将搜索区域A2:
C10的第一列中的值38,然后返回该区域同一行中第三列包含的值作为查询值。
VLOOKUP中的V表示垂直方向。
语法
VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
VLOOKUP函数语法具有下列参数:
lookup_value 必需。
要在表格或区域的第一列中自上而下搜索的值。
lookup_value参数可以是值或引用。
如果table_array参数第一列中不存在 lookup_value参数提供的值,则VLOOKUP将返回错误值#N/A。
table_array 必需。
包含数据的单元格区域。
可以使用对区域(例如,A2:
D8)或区域名称的引用。
table_array第一列中的值是由lookup_value搜索的值。
这些值可以是文本、数字或逻辑值。
文本不区分大小写。
col_index_num 必需。
table_array参数中必须返回的匹配值的列号。
col_index_num参数为1时,返回table_array第一列中的值;col_index_num为2时,返回table_array第二列中的值,依此类推。
如果col_index_num参数:
(1)小于1,则VLOOKUP返回错误值#VALUE!
。
(2)大于table_array的列数,则VLOOKUP返回错误值#REF!
。
range_lookup 可选。
一个逻辑值,指定希望VLOOKUP查找精确匹配值还是近似匹配值:
如果range_lookup为TRUE或被省略,则返回精确匹配值或近似匹配值。
如果找不到精确匹配值,则返回小于lookup_value的最大值。
要点
如果range_lookup为TRUE或被省略,则必须按升序排列table_array第一列中的值;否则,VLOOKUP可能无法返回正确的值。
如果range_lookup为FALSE,则不需要对table_array第一列中的值进行排序。
如果range_lookup参数为FALSE,VLOOKUP将只查找精确匹配值。
如果table_array的第一列中有两个或更多值与lookup_value匹配,则使用第一个找到的值。
如果找不到精确匹配值,则返回错误值#N/A。
示例
本示例搜索大气特征表的“密度”列以查找“粘度”和“温度”列中对应的值。
(该值是在海平面0摄氏度或1个大气压下对空气的测定。
)
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
若要使该示例能够正常工作,必须将其粘贴到工作表的单元格A1中。
密度(A1)
粘度
温度
0.457
3.55
500
0.525
3.25
400
0.606
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
公式
说明
结果
=VLOOKUP(1,A2:
C10,2)
使用近似匹配搜索A列中的值1,
在A列中找到小于等于1的最大值0.946,
然后返回同一行中B列的值。
2.17
=VLOOKUP(1,A2:
C10,3,TRUE)
使用近似匹配搜索A列中的值1,
在A列中找到小于等于1的最大值0.946,
然后返回同一行中C列的值。
100
=VLOOKUP(0.7,A2:
C10,3,FALSE)
使用精确匹配在A列中搜索值0.7。
因为A列中没有精确匹配的值,所以返回一个错误。
#N/A
=VLOOKUP(0.1,A2:
C10,2,TRUE)
使用近似匹配在A列中搜索值0.1。
因为0.1小于A列中最小的值,所以返回一个错误。
#N/A
=VLOOKUP(2,A2:
C10,2,TRUE)
使用近似匹配搜索A列中的值2,
在A列中找到小于等于2的最大值1.29,
然后返回同一行中B列的值。
1.71
应用举例:
从Book2的sheet1中找到Book1中A列站点的信息。
结果:
解释:
如要查找站名的地址则公式为在B2中输入“
=VLOOKUP(A2,[Book2.xlsx]Sheet1!
$B$1:
$G$32,2,FALSE)”
此外还可以使用LOOKUP函数来完成此功能;
如图:
公式为“=LOOKUP(A3,[Book2.xlsx]Sheet1!
$B$2:
$B$31,[Book2.xlsx]Sheet1!
$D$2:
$D$31)”
更有甚者,想要完成同样的功能还可以用INDEX+MATCH函数,公式如下:
“=INDEX([Book2.xlsx]Sheet1!
$C$2:
$C$31,MATCH(A5,[Book2.xlsx]Sheet1!
$B$2:
$B$31,0))”查找结果如图:
完成了上面的功能,现在我们看看INDEX和MATCH函数的功能及简介,以及完成上述功能的原理。
3INDEX函数介绍
一、功能:
返回(多个或单个)指定数据区域中的某行某列的值。
语法:
为了方便大家的理解,函数语法直接使用中文来描述。
INDEX(数据区域(可以有多个数据区域),返回第几行数据,返回第几列数据,查找第几个区域的数据)
这个函数,比较难以理解,我们还是从实例开始介绍吧。
二、实例介绍
看下表;下表中,有两个数据区域,第一个区域为A2:
C6;第二个区域为A8:
C10;
现在,我们将要使用INDEX函数,求取这两个数据区域中的某单元格的数据。
下面,我们要获取C9单元格的值,即29,如何通过这个函数来获取数据呢?
还是先从函数语法来分析:
INDEX(数据区域,返回第几行数据,返回第几列数据,查找第几个区域的数据)
通过套用以上的函数语法,我们应该使用如下的函数公式:
=INDEX((A2:
C6,A8:
C10,A12:
C13),2,3,2)
如上图吧,输入公式之后,按下回车键即可得结果。
三、函数公式分析
=INDEX((A2:
C6,A8:
C10),2,3,2),其中:
(A2:
C6,A8:
C10)代表函数要查找的数据范围为两个区域,中间使用,隔开,第一个区域为A2:
C6;第二个区域为A8:
C10;(如果有第三个、第四个区域,同样可以填入函数中)。
=INDEX((A2:
C6,A8:
C10),2,3,2),其中的2代表要查找的数据范围为第二个数据区域,即A8:
C10;而不是第一个区域A2:
C6;
=INDEX((A2:
C6,A8:
C10),2,3,2),其中的3代表返回已选择的数据区域的第三列数据;
=INDEX((A2:
C6,A8:
C10),2,3,2),其中的2代表返回已选择的数据区域的第二行数据;
当然,该函数也可以只使用一个数据区域。
比如,同样,要返回C9单元格的值,我们可以使用如此公式代码:
=INDEX((A8:
C10),2,3)
此时,由于只有一个数据区域,因此,数据区域的参数可省略不填写。
4MATCH函数介绍
一、主要功能:
返回在指定方式下与指定数值匹配的数组中元素的相应位置。
使用格式:
MATCH(lookup_value,lookup_array,match_type)
参数介绍:
Lookup_value代表需要在数据表中查找的数值;
Lookup_array表示可能包含所要查找的数值的连续单元格区域;
Match_type表示查找方式的值(-1、0或1)。
如果match_type为-1,查找大于或等于lookup_value的最小数值,Lookup_array必须按降序排列;
如果match_type为1,查找小于或等于lookup_value的最大数值,Lookup_array必须按升序排列;
如果match_type为0,查找等于lookup_value的第一个数值,Lookup_array可以按任何顺序排列;如果省略match_type,则默认为1。
该函数的中文解释:
MATCH(要查找的值,要查找的数据范围,查找方式)
二、函数应用举例
Ok现在INDEX和MATCH的功课做完了,我们解释一下那个从Book2查找站点信息的公式:
“=INDEX([Book2.xlsx]Sheet1!
$C$2:
$C$31,MATCH(A5,[Book2.xlsx]Sheet1!
$B$2:
$B$31,0))”
MATCH函数返回A5单元格内容在BOOK2的sheet1中的B2:
B31区域行数,然后INDEX函数返回对应于该行数的对应的在BOOK2中的sheet1表的C2:
C31区域的值。