第一篇:VLOOKUP函数
VLOOKUP函数
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值。
这里所说的“数组”,可以理解为表格中的一个区域。数组的列序号:数组的“首列”,就是这个区域的第一纵列,此列右边依次为第2列、3列……。假定某数组区域为B2:E10,那么,B2:B10为第1列、C2:C10为第2列……。
语法:
VLOOKUP(查找值,区域,列序号,逻辑值)
“查找值”:为需要在数组第一列中查找的数值,它可以是数值、引用或文字符串。“区域”:数组所在的区域,如“B2:E10”,也可以使用对区域或区域名称的引用,例如数据库或数据清单。
“列序号”:即希望区域(数组)中待返回的匹配值的列序号,为1时,返回第一列中的数值,为2时,返回第二列中的数值,以此类推;若列序号小于1,函数VLOOKUP 返回错误值 #VALUE!;如果大于区域的列数,函数VLOOKUP返回错误值 #REF!。
“逻辑值”:为TRUE或FALSE。它指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果“逻辑值”为FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。如果“查找值”为文本时,“逻辑值”一般应为 FALSE。另外:
·如果“查找值”小于“区域”第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。·如果函数 VLOOKUP 找不到“查找值” 且“逻辑值”为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
下面举例说明VLOOKUP函数的使用方法。
假设在Sheet1中存放小麦、水稻、玉米、花生等若干农产品的销售单价:
A B 1 农产品名称 单价 2 小麦 0.56 3 水稻 0.48 4 玉米 0.39 5 花生 0.51 ………………………………… 100 大豆 0.45 Sheet2为销售清单,每次填写的清单内容不尽相同:要求在Sheet2中输入农产品名称、数量后,根据Sheet1的数据,自动生成单价和销售额。设下表为Sheet2:
A B C D 1 农产品名称 数量 单价 金额 2 水稻 1000 0.48 480 3 玉米 2000 0.39 780 ………………………………………………… 在D2单元格里输入公式: =C2*B2 ;
在C2单元格里输入公式:
=VLOOKUP(A2,Sheet1!A2:B100,2,FALSE)。
如用语言来表述,就是:在Sheet1表A2:B100区域的第一列查找Sheet2表单元格A2的值,查到后,返回这一行第2列的值。
这样,当Sheet2表A2单元格里输入的名称改变后,C2里的单价就会自动跟着变化。当然,如Sheet1中的单价值发生变化,Sheet2中相应的数值也会跟着变化。
其他单元格的公式,可采用填充的办法写入。VLOOKUP函数使用注意事项
说到VLOOKUP函数,相信大家都会使用,而且都使用得很熟练了。不过,有几个细节问题,大家在使用时还是留心一下的好。
一.VLOOKUP的语法
VLOOKUP函数的完整语法是这样的:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)1.括号里有四个参数,是必需的。最后一个参数range_lookup是个逻辑值,我们常常输入一个0字,或者False;其实也可以输入一个1字,或者true。两者有什么区别呢?前者表示的是完整寻找,找不到就传回错误值#N/A;后者先是找一模一样的,找不到再去找很接近的值,还找不到也只好传回错误值#N/A。这对我们其实也没有什么实际意义,只是满足好奇而已,有兴趣的朋友可以去体验体验。2.Lookup_value是一个很重要的参数,它可以是数值、文字字符串、或参照地址。我们常常用的是参照地址。用这个参数时,有两点要特别提醒:
A)参照地址的单元格格式类别与去搜寻的单元格格式的类别要一致,否则的话有时明明看到有资料,就是抓不过来。特别是参照地址的值是数字时,最为明显,若搜寻的单元格格式类别为文字,虽然看起来都是123,但是就是抓不出东西来的。
而且格式类别在未输入数据时就要先确定好,如果数据都输入进去了,发现格式不符,已为时已晚,若还想去抓,则需重新输入。
B)第二点提醒的,是使用时一个方便实用的小技巧,相信不少人早就知道了的。我们在使用参照地址时,有时需要将lookup_value的值固定在一个格子内,而又要使用下拉方式(或复制)将函数添加到新的单元格中去,这里就要用到“$”这个符号了,这是一个起固定作用的符号。比如说我始终想以D5格式来抓数据,则可以把D5弄成这样:$D$5,则不论你如何拉、复制,函数始终都会以D5的值来抓数据。
3.Table_array是搜寻的范围,col_index_num是范围内的栏数。Col_index_num 不能小于1,其实等于1也没有什么实际用的。如果出现一个这样的错误的值#REF!,则可能是col_index_num的值超过范围的总字段数。
二.VLOOKUP的错误值处理。
我们都知道,如果找不到数据,函数总会传回一个这样的错误值#N/A,这错误值其实也很有用的。比方说,如果我们想这样来作处理:如果找到的话,就传回相应的值,如果找不到的话,我就自动设定它的值等于0,那函数就可以写成这样:
=if(iserror(vlookup(1,2,3,0))=true,0,vlookup(1,2,3,0))这句话的意思是这样的:如果VLOOKUP函数返回的值是个错误值的话(找不到数据),就等于0,否则,就等于VLOOKUP函数返回的值(即找到的相应的值)。
这里面又用了两个函数。
第一个是iserror函数。它的语法是iserror(value),即判断括号内的值是否为错误值,如果是,就等于true,不是,就等于false。
第二个是if函数,这也是一个常用的函数的,后面有机会再跟大家详细讲解。它的语法是if(条件判断式,结果1,结果2)。如果条件判断式是对的,就执行结果1,否则就执行结果2。举个例子:=if(D2=“",”空的“,”有东西"),意思是如D2这个格子里是空的值,就显示文字“空的”,否则,就显示“有东西”。(看起来简单吧?其实编程序,也就是这样子判断来判断去的。)
三.含有VLOOKUP函数的工作表档案的处理。
一般来说,含有VLOOKUP函数的工作表,如果又是在别的档案里抓取数据的话,档案往往是比较大的。尤其是当你使用的档案本身就很大的时候,那每次开启和存盘都是很受伤的事情。有没有办法把文件压缩一下,加快开启和存盘的速度呢。这里提供一个小小的经验。在工作表里,点击工具──选项──计算,把上面的更新远程参照和储存外部连结的勾去掉,再保存档案,则会加速不少,不信你可以试试。
下面详细的说一下它的原理。
1.含有VLOOKUP函数的工作表,每次在保存档案时,会同时保存一份其外部连结的档案。这样即使在单独打开这个工作表时,VLOOKUP函数一样可以抓取到数值。2.在工作表打开时,微软会提示你,是否要更新远程参照。意思是说,你要不要连接最新的外部档案,好让你的VLOOKUP函数抓到最新的值。如果你有足够的耐心,不妨试试。
3.了解到这点,我们应该知道,每次单独打开含有VLOOKUP函数的工作表时,里面抓取外部档案的数值,只是上次我们存盘时保存的值。若要连结最新的值,必须要把外部档案同时打开。
VLOOKUP函数我所了解的,也只是这些,大家有什么好的经验或有什么疑问,欢迎大家提出,一起探讨。
excel 用vlookup函数跨表调取数据 2009-03-13 14:12 目标:从全校学生资料中调取本班学生资料
1、下面是总表,有一千个学生的资料,我这里只举几项资料,如姓名、性别、出生年月日、学号、民族。
2、插入一个工作表,命名“一(1)班”,这个是自己班学生的名字,班主任当然很快打得出来。
3、现在B2单元格里输入“=VLOOKUP($A2,总表!$A$2:$E$1000,2,0)”,回车就可以显示小明的性别了。
注意:输入内容必须是英文状态下输入。
解释:$A2 代表本工作表要查找的单元格(意思是要到别的工作表查找与这个单元格相同
的内容)
总表!代表要查找的工作表(要在“总表”工作表里查找)
$A$2:$E$1000 找在哪个范围查找,即A2到E1000这个范围内
2代表要显示哪一列的数据,即查找范围是A2到B7,那A列为第1列,我想显示B
列的数据,B(性别)列为第2列。
4、选中B2这一格,鼠标移到右下角出现黑十字时,单击左键不放往下拉,拉到最后一名学生再放开,所有的学生的性别就出现了。
5、再回来B2,像上面一步一样往右拉。
一看效果怎么打横的全都是性别,别急,再看下一步。
6、选中C2,看看函数栏,原来要显示的列数还没改,还是第2列,那“出生年月日”是第3列,就改为3,再回车。
效果出来了,看到出生年月了,然后用上面的方法往下拉,把全班的拉出来。
7、如此类推,把其他列改过来之后,再往下拉,那么就可以显示所有的资料了。
8、如果一(1)班的班主任做完了,那么其他班的班主任就不用这么麻烦了,只要把自己班的学生名单复制,然后覆盖一(1)班学生的姓名,其他资料就跟着变了,呵呵!
=VLOOKUP($A1,Sheet2!$A$1:$C$14864,3,0)
第二篇:关于VLOOKUP函数的用法
关于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编号 姓名 工资 科室2005001 周杰伦 2870 办公室2005002 萧亚轩 2750 人事科2005006 郑智化 2680 供应科2005010 屠洪刚 2980 销售科2005019 孙楠 2530 财务科2005036 孟庭苇 2200 工 会
A列已排序(第四个参数缺省或用TRUE)
VLOOKUP(2005001,A17,2,TRUE)等于“周杰伦”
VLOOKUP(2005001,A17,3,TRUE)等于“2870”
VLOOKUP(2005001,A17,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列没有排序,要得出正确的结果,第四个参数必须用FALAEVLOOKUP(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即可。
最近爱上了VLOOKUP,有人还对它进行了更新。因为它的漏洞就是只能返回重复值得第一个值。下面就详细来叙述一下吧!
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value 为需要在Table_array第一列中查找的数值。
可以为数值、引用或文本字符串。需要注意的是类型必须与table_array第一列的类型一致。查找文本时,文本不区分大小写;可以使用通配符“*”、“?”。
Table_array 为需要在其中查找数据的数据表。
可以使用对区域或区域名称的引用、常数数组、计算后的内存数组。对区域引用时,可以引用整列,excel会自动判断使用区域。
该参数的第一列必须包含查找的内容,其它列包含需返回的内容;返回内容的列序号由下个参数指定。
Col_index_num 为table_array中待返回的匹配值的列序号。
如为1时,返回table_array第一列中的数值;为2,返回table_array第二列中的数值,以此类推。
如果col_index_num小于1,函数 VLOOKUP 返回错误值值 #VALUE!;
如果col_index_num大于table_array的列数,函数 VLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数VLOOKUP返回时是精确匹配还是近似匹配。
如果为TRUE或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;
近似匹配查询一般用于数值的查询,table_array的第一列必须按升序排列;否则不能返回正确的结果。
如果range_value为FALSE(或0),函数VLOOKUP将返回精确匹配值。
此时,table_array不必进行排序。如果找不到,则返回错误值#N/A;可isna检测错误后使用if判断去除错误信息。
VLOOKUP 经常会出现错误的#N/A,下面是几种可能性: 数据有空格或者数据类型不一致。
可以在lookup_value 前用TRIM()将空格去除。
如果格式不一致,可以将数值强制转换成文本,lookup_value之后用&跟""表示的空字符串。将文本转换成数值,lookup_value*1进行运算。假设有以下两个表格:表1:
姓名 身份证 学科 成绩
张三 310111 物理 A
李斯 310112 化学 B王五 310113 政治 A赵六 310114 物理 B
张三 310111 政治 C
赵六 310114 语文 B刘备 310115 英语 D
表2:
姓名 身份证 住址 学科 成绩
曹操 319723 陕西马超 310197 甘肃赵云 319784 黑龙江
李斯 310112 浙江刘备 310115 江苏张三 310111 上海
请问:如何快速的将表2的学科和成绩自动填入?直接使用VLOOKUP即可。示例如下:
=VLOOKUP($B1,Sheet1!$B$1C$5,2,FALSE)
涵义:在Sheet1的单元格区间B1:C5,查找符合条件为:第一列与当前工作表单元格B1的值相等的第二列的值。
$B1 条件值
Sheet1!$B$1C$5 要查找区间(注意:请使用绝对引用)2 查找的结果为区域中的第几列FALSE 表示精确查找
*具体应用中大家注意各个参数的意义!调整参数来满足个人需要。
第三篇:vlookup
vlookup(你的公式应该不完整,少第一个参数,通俗讲vlookup有4个参数,每个参数之间用逗号分开
vlookup($A$349:$L$1329,12,0)
第一个参数就是你要找什么?(你的公式就少这个)
第二个参数就是你在哪个范围里找?(你的公式查找的单元格范围就是$A$349:$L$1329)
第三个参数就是找到后显示其后的第几列的值(你的公式显示12,就是其后第12列)
第四个参数就是精确匹配还是大致匹配,只能选大致匹配(输入false或0都行)。
你这个好像还差了一项,$A$349:$L$1329,这个是将要引入的数据范围,12,是需要引入数据是第多少列,0表示绝对,也可以用false替.还差了一个基本数据项 vlookup($A$349:$L$1329,12,0)好像少了个吧
比如是vlookup(A1330,$A$349:$L$1329,12,0)
意思则是:在A349到A1329区域内查找等于A1330值的单元格,然后返回对应的第12列的值即L列相对应的值
如ABCD苹果红色apple橘子香蕉黄色banana橘子橙色orange
=VLOOKUP(D1,A1:C3,3,0)结果等于orange
另外,0表示查找完全相同的值,若为1,则查找相似的值
$$表示绝对引用,就是你向下或者向右复制公司,这块区域都不会变
VLOOKUP函数的使用格式是这样的:
VLOOKUP(D3,Sheet1!A5:B12,1,FALSE)
其中的D3是你要输入的准考证号所在的单元格的地址
而Sheet1是你的学生成绩表,后面加上“!”是表示在该表中的位置,A5:B12是你的表中有用数据的范围1,是你要选取第几列,是相对的,如准考证号是1,姓名是3等
FLASE,是用来排序的,为TRUE时是所查询的结果排序显示,FALSE则不需排序
VLOOKUP函数,在表格或数值数组(数据表)的首列查找指定的数值(查找值),并由此返回表格或数组当前行中指定列(列序号)处的数值。
VLOOKUP(查找值,数据表,列序号,[匹配条件])
例如在SHEET2表中有全部100个学生的资料,B列为学号、C列为姓名、D列为班级,现在在SHEET1表的A列有学号,我们需要使用该函数,将SHEET2表中对应学号的姓名引用到SHEET1表的B列。我们只需在SHEET1的B2输入以下公式 =VLOOKUP(A2,SHEET2!$B:$D,2,FALSE)(或者=VLOOKUP(A2,SHEET2!$B$2:$D$101,2,0),就得到了A2单元格学号对应的学生姓名。同理, 在SHEET1表的C2输入公式
=VLOOKUP(A2,SHEET2!$B:$D,3,FALSE),即可得到对应的班级.VLOOKUP(A2,SHEET2!$B:$D,2,FALSE)四个参数解释
1、“A2”是查找值,就是要查找A2单元格的某个学号。
2、“SHEET2!$B:$D”是数据表,就是要在其中查找学号的表格,这个区域的首列必须是学号。
3、“2”表示我们最后的结果是要“SHEET2!$B:$D”中的第“2”列数据,从B列开始算第2列。
4、“FALSE”(可以用0代替FALSE)是匹配条件,表示要精确查找,如果是TRUE表示模糊查找。
如果我们需要在输入A列学号以后,B列与C列自动填充对应的姓名与班级,那么只需要在B列,C列预先输入公式就可以了。为了避免在A列学号输入之前,B列与C列出现“#N/A”这样错误值,可以增加一个IF函数判断A列是否为空,非空则进行VLOOKUP查找.这样B2与C2的公式分别调整为
B2=IF(A2=“",”“,VLOOKUP(A2,SHEET2!$B:$D,2,0))
C2=IF(A2=”“,”",VLOOKUP(A2,SHEET2!$B:$D,3,0))
VLOOKUP
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value为需要在数据表第一列中查找的数值。Lookup_value 可以为数值、引用或文字串。
Table_array为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或数据清单。
如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-
2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
vlookup(lookup_value,table_array,col_index_num,range_lookup)
lookup_value 为需要在table_array第一列中查找的数值。
可以为数值、引用或文本字符串。需要注意的是类型必须与table_array第一列的类型一致。
查找文本时,文本不区分大小写;可以使用通配符“*”、“?”。
table_array 为需要在其中查找数据的数据表。
可以使用对区域或区域名称的引用、常数数组、计算后的内存数组。
对区域引用时,可以引用整列,excel会自动判断使用区域。
该参数的第一列必须包含查找的内容,其它列包含需返回的内容;返回内容的列序号由下个参数指定。
col_index_num 为table_array中待返回的匹配值的列序号。
如为1时,返回table_array第一列中的数值;为2,返回table_array第二列中的数值,以此类推。
如果col_index_num小于1,函数 vlookup 返回错误值值 #value!;
如果col_index_num大于table_array的列数,函数 vlookup 返回错误值 #ref!。
range_lookup 为一逻辑值,指明函数vlookup返回时是精确匹配还是近似匹配。
如果为true或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;近似匹配查询一般用于数值的查询,table_array的第一列必须按升序排列;否则不能返回正确的结果。
如果range_value为false(或0),函数vlookup将返回精确匹配值。
此时,table_array不必进行排序。如果找不到,则返回错误值#n/a;可isna检测错误后使用if判断去除错误信息。
第四篇:用函数VLOOKUP是最好不过的了
用函数VLOOKUP是最好不过的了,不但速度快,而且准确无误,能帮助你实现对两个工作表中各值的比对,不仅仅指姓名哟,如果有数值同样也可以的。废话少说,我还是快点告诉你怎么操作吧。选其两个表格中的任一个(假设语文),并插入一列,设为数学成绩,在成绩列任选一单元格,单击函数FX,选中VLOOKUP后,会跳出函数输入对话框(以下叙述按对话框提示序号为序),第一(VAIUE)是选取你在该工作表(语文成绩表),输入同学姓名的区域,手工输入或鼠标拖拽均可;第二,选中要引用的另一张工作表,也就是数学成绩表,选中区域是同学姓名列至成绩列后;第三,在对话框中输入要引用同学成绩的列数,自被引用的工作表(数学表)同学姓名列始至成绩列止,如成绩姓名的第二列(含姓名列),就输入2;第四,输入false,最后回车确定。函数公式基本上就完成了,需要注意的是,在第一步里一定要输入绝对引用符号,是为了确定引用区域在其以下单元里不会变化。第五步,将该单元格的公式填充该列各个单元格,结果就出来了,同一个名字就会正确显示数学表中他的正确成绩,显示错误符号说明语言表没有这个姓名,只要把他的名字正确输入到姓名单元格内,成绩列就会正确显示他的数学成绩
第五篇:Excel函数loookup与Vlookup函数区别及应用
Excel函数 Lookup与Vlookup函数的区别及应用
讲解
Excel查询函数中,Lookup和Vlookup有哪些区别?它们在应用中应该如何把握?请看本文讲解。
★Lookup——数与行列比
Lookup的工作职责是什么呢?用一个数与一行或一列数据依次进行比较,发现匹配的数值后,将另一组数据中对应的数值提取出来。
·工资税率表:用数值比较
根据不同的工资进行不同的税率计算是一个常见的应用。我们来看这张“工资税率查询”表(见图1)。现在要在右侧根据“收入”(F列),直接得到对应的“税率”(G列)。在计算第1个“税率”时,输入函数公式“=LOOKUP(F4,$B$3:$B$8,$D$3:$D$8)”,回车,便可得到“36.00%”。
这个结果是怎么来的?用F4中的第1个收入数“$123,409”,与左侧表的“收入最低”各档数据(“$B$3:$B$8”)进行对比,虽然“$123,409”在“收入最低”各档数中没有完全一致的数据与之匹配,但是会与其中小于它的最大数“$58,501”相匹配。这样,同一行对应的“36.00%”就提取出来了。
·图书销售表:用文本比较
Lookup函数的对比数还可以是文本。在这张图书销售查询表中(见图2),用下表输入的“编号”(A15单元格)文本当作查询数,与上表的“编号”一列($A$3:$A$11)进行对比,查询到了匹配的文本后,将“教材名称”一列($B$3:$B$11)对应的数据提取出来。公式是“=LOOKUP(A15,$A$3:$A$11,$B$3:$B$11)”。
★Vlookup——数与表格比
Lookup有一个大哥——Vlookup函数。两兄弟有很多相似之处,但大哥本领更大。Vlookup用对比数与一个“表”进行对比,而不是Lookup函数的某1列或1行,并且Vlookup可以选择采用精确查询或是模糊查询方式,而Lookup只有模糊查询。
·模糊匹配
用Vlookup函数进行模糊查询时,几乎与Lookup的作用完全一致。我们用Vlookup函数来提取第1个例子中的工资税率结果。函数公式为“=VLOOKUP(F4,$B$3:$D$8,3,TRUE)”。
在这个函数中,用第1个收入“$123,409”(F4单元格)当作对比数,用它与左侧表(“$B$3:$D$8”)的第1列数进行对比,虽然“$123,409”在“收入最低”各档数中没有完全一致的数据与之匹配,但是函数的最后一个参数是“TURE”(“TURE”就是模糊查询),所以它会与其中小于它的最大数“$58,501”相匹配。并将表中第3列(函数的第3个参数为“3”)对应的数据提取出来,所以结果同样是“36.00%”。
·订单明细表:精确匹配
有时候,我们需要精益求精。在下面这个“订单明细表”(见图3)中,最后一列“货运费用”中的数据要通过“交货方式”从左侧“配送公司收费表”中进行匹配查询。这是一个典型的精确查询的例子,计算第1个数据的函数公式是“=VLOOKUP(H3,$B$2:$D$6,3,FALSE)”。
小提示:
把最后一个参数从“TRUE”变更成“FLASE”,就是精确匹配。而精确查询,就是查询数要与查询表第1列中的数据完全一致才能匹配提取,否则结果返回错误值“#N/A”。
点评:
Excel为我们提供了近20个有关“查找和引用”的函数,除了最常用的Lookup、Vlookup,还有Choos、Row、Colum、Index和Match等,大家可以通过函数的帮助查看具体的功能。这些函数往往不是单独使用,可以与其他函数和Excel中的一些功能进行配合。