本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:注册会计师(注会)练习软件
日志总数:398
评论数量:116
留言数量:27
访问次数:3282936
建立时间:2005年6月6日




[delpih编程]EXCEL深入挖掘-三 VLOOKUP的用法(转)
软件技术

吕向阳 发表于 2010/6/15 5:31:37

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即可。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.563 水稻 0.484 玉米 0.395 花生 0.51…………………………………100 大豆 0.45Sheet2为销售清单,每次填写的清单内容不尽相同:要求在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函数我所了解的,也只是这些


阅读全文(1742) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144799042 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号