如题所述
VLOOKUP函数
这个函数可以根据搜索区域内最左列的值,去查找区域内其它列的数据,并返回该列的数据,对于字母来说,搜索时不分大小写。所以,函数VLOOKUP的查找可以达到两种目的:一是精确的查找。二是近似的查找。下面分别说明。
函数的语法:前面学用了不少函数,都利用插入函数,在“粘贴函数”对话框中进行有关参数的设置。其实这种设置,就是函数的语法结构了,如本文要讲的函数VLOOKUP,其语法结构为:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup),其中:
lookup_value:表示要查找的值,它必须位于自定义查找区域的最左列;
table_array:查找的区域,用于查找数据的区域,上面的查找值必须位于这个区域的最左列;
col_index_num:相对列号,最左列为1,其右边一列为2,依此类推;
range_lookup:这是一个逻辑量,当为“TRUE”时,按近似值查找,这时查找值必须为升序排列;如果为“FALSE”时,按精确值查找,查找值不必排序。
一、根据区域最左列的值,对其它列的数据进行精确的查找
(一)利用函数VLOOKUP,根据学生的姓名,查找他的其它信息
如图1,这是我们前面作的例子,假设需要根据姓名进行其它信息的查询。
1.定义查找区域。因为是按姓名查找,所以姓名所在的列应该是所定义区域的最左列,先按照前面介绍的定义单元格区域的方法,把“B2~J11”命名为“按姓名查找”。
2.利用函数VLOOKUP ,按姓名进行有关信息的查找。如:
(1)查找“邓菊”的总分:=VLOOKUP(“邓菊”,按姓名查找,7,FALSE)。(返回“395”)
(2)查找“张平”的数学分数:=VLOOKUP(“张平”,按姓名查找,3,FALSE)。(返回“80”)
(3)查找“黄环”的名次:=VLOOKUP(“黄环”,按姓名查找,9,FALSE)。(返回“10”)
以上按姓名进行有关项目的查找,其中的“按姓名查找”是刚才定义的查找区域,“7”、“3”、“9”是需查找的信息所在的自定义区域内的相对列号。
操作技巧:既可以在选取的单元格中直接输入函数及参数,也可以在“粘贴函数”对话框中进行设置。
(二)利用函数VLOOKUP,根据仓库名称,查找仓库的容量和存放物资
如图2,是某仓库的部分情况,同样可以根据“仓库号”查找相关数据,首先把区域“A2~C11”定义为“按仓库号查找”。如下是一些精确查找的例子:
1.查找X3仓库中物资的名称(结果为“钢筋”):=VLOOKUP(“X3”,按仓库号查找,3,FALSE)。
2.查找X9仓库的容量(结果为“452”):=VLOOKUP(“X9”,按仓库号查找,2,FALSE)。
二、根据定义区域最左列的值,对其它列数据进行不精确值的查找
当“range_lookup”为“TRUE”时,函数按近似值查找,并返回小于查找值的最接近值。图3是一个个人所得税税率表,先把区域 “A3~B11”定义为“查找个人所得税税率”,注意区域最左列的数据是按升序进行排列的。下面是用函数VLOOKUP,查找一些个人收入对应的税率:
1.如查找个人收入为958元的税率(查找结果为5%):=VLOOKUP(950,查找个人所得税税率,2,TRUE)(因为比950小的是500,而500对应的税率是5%,所以结果是5%)。
2.如查找个人收入35000元的税率(查找结果为25%):=VLOOKUP(35000,查找个人所得税税率,2,TRUE)(因为比35000元小的是20000元,而20000对应的税率是25%,所以结果是25%)。
3.如查找个人收入为1000000元的税率(查找结果是45%):=VLOOKUP(1000000,查找个人所得税税率,2,TRUE)。
第二
VLOOKUP函数的使用 来源: 陈老师物理资源网 作者:陈老师 发表日期: 2007-12-31 0:32:20 阅读次数: 811 查看权限: 普通教程 其 实这并不是很重要的一个函数,是今天在统计班里成绩的时候忽然想到的一个问题,我想给学生一点奖励,奖励两次考试进步最大的同学,那就要比较两次考试的成 绩,期中考试我按照名次排列了,期末考试也是按照名次排列的,但名字不对应,当然我可以排序后再比较或者其他方法,但我忽然想到能不能在不动数据的情况 下,将人名对应的成绩求出来呢?所以才学到了这个函数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函数我所了解的,也只是这些,大家有什么好的经验或有什么疑问,欢迎大家提出,一起探讨。
IF函数
(二)IF函数说明
IF函数用于执行真假值判断后,根据逻辑测试的真假值返回不同的结果,因此If函数也称之为条件函数。它的应用很广泛,可以使用函数 IF 对数值和公式进行条件检测。
它的语法为IF(logical_test,value_if_true,value_if_false)。其中Logical_test表示计算结果为 TRUE 或 FALSE 的任意值或表达式。本参数可使用任何比较运算符。
Value_if_true显示在logical_test 为 TRUE 时返回的值,Value_if_true 也可以是其他公式。Value_if_false logical_test 为 FALSE 时返回的值。Value_if_false 也可以是其他公式。
简言之,如果第一个参数logical_test返回的结果为真的话,则执行第二个参数Value_if_true的结果,否则执行第三个参数Value_if_false的结果。IF函数可以嵌套七层,用 value_if_false 及 value_if_true 参数可以构造复杂的检测条件。
Excel 还提供了可根据某一条件来分析数据的其他函数。例如,如果要计算单元格区域中某个文本串或数字出现的次数,则可使用 COUNTIF 工作表函数。如果要根据单元格区域中的某一文本串或数字求和,则可使用 SUMIF 工作表函数。
IF函数应用
1、 输出带有公式的空白表单
图5 人事分析表1
以图中所示的人事状况分析表为例,由于各部门关于人员的组成情况的数据尚未填写,在总计栏(以单元格G5为例)公式为:
=SUM(C5:F5)
我们看到计算为0的结果。如果这样的表格打印出来就页面的美观来看显示是不令人满意的。是否有办法去掉总计栏中的0呢?你可能会说,不写公式不就行了。当然这是一个办法,但是,如果我们利用了IF函数的话,也可以在写公式的情况下,同样不显示这些0。如何实现呢?只需将总计栏中的公式(仅以单元格G5为例)改写成:
=IF(SUM(C5:F5),SUM(C5:F5),"")
通俗的解释就是:如果SUM(C5:F5)不等于零,则在单元格中显示SUM(C5:F5)的结果,否则显示字符串。
几点说明:
(1) SUM(C5:F5)不等于零的正规写法是SUM(C5:F5)<>0,在EXCEL中可以省略<>0;
(2) ""表示字符串的内容为空,因此执行的结果是在单元格中不显示任何字符。
看看吧,有常用函数与技巧的教程,很详细。