LOOKUPVLOOKUPMATCHINDEX函数应用举例.doc
-LOOKUP,VLOOKUP,MATCH,INDEX函数1 LOOKUP函数详解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函数是指在单行区域或单列区域中查找值,然后返回第二个单行区域或单列区域中相同位置的值。 2 VLOOKUP函数详解您可以使用 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.4573.555000.5253.254000.6062.933000.6752.752500.7462.572000.8352.381500.9462.171001.091.95501.291.710公式说明结果=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.xlsxSheet1!$B$1:$G$32包含要查找值的单元格区域,此处为Book2中的Sheet1的B1:G32;,2所选中区域的第二列,即为Book2中的地址列。,FALSE)”此外还可以使用LOOKUP函数来完成此功能;如图:公式为“=LOOKUP(A3,Book2.xlsxSheet1!$B$2:$B$31,Book2.xlsxSheet1!$D$2:$D$31)”更有甚者,想要完成同样的功能还可以用INDEXMATCH函数,公式如下: “=INDEX(Book2.xlsxSheet1!$C$2:$C$31,MATCH(A5,Book2.xlsxSheet1!$B$2:$B$31,0)”查找结果如图:完成了上面的功能,现在我们看看INDEX和MATCH函数的功能及简介,以及完成上述功能的原理。3 INDEX函数介绍一、功能:返回(多个或单个)指定数据区域中的某行某列的值。语法:为了方便大家的理解,函数语法直接使用中文来描述。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)此时,由于只有一个数据区域,因此,数据区域的参数可省略不填写。4 MATCH函数介绍一、主要功能:返回在指定方式下与指定数值匹配的数组中元素的相应位置。使用格式: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.xlsxSheet1!$C$2:$C$31,MATCH(A5,Book2.xlsxSheet1!$B$2:$B$31,0)”MATCH函数返回A5单元格内容在BOOK2的sheet1中的B2:B31区域行数,然后INDEX函数返回对应于该行数的对应的在BOOK2中的sheet1 表的C2:C31区域的值。