第一篇:关于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函数
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值。
这里所说的“数组”,可以理解为表格中的一个区域。数组的列序号:数组的“首列”,就是这个区域的第一纵列,此列右边依次为第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)
第三篇:EXCEL查找与引用函数VLOOKUP的应用法及实例 详解
EXCEL查找与引用函数VLOOKUP的应用法及实例详解
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
VLOOKUP(查找XX,在YY区域中,与查找值相对的第ZZ列的值,方式)lookup_value
为需要在数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。
如下图所示,C3单元格即为lookup_value
名称的引用,例如数据库或列表。
如下图所示:C6:F10即为
table_array
为需要在其中查找数据的数据表。可以使用对区域或区域
table_array
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表示数据表的第4列,col_index_num
range_lookup
如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:„、-
2、-1、0、1、2、„、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
(通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。)为了方便起见,一般选用 FALSE,即表格不必要再按升序又排列一次。
table_array 的第一列中的数值可以为文本、数字或逻辑值。文本不区分大小写。
如下图所示,FALSE 即为range_lookup表示第一列的数值不必进行排序
range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
VLOOKUP 返回错误值 #N/A。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数
如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
----------------------------对于可能产生错误值的防范 将公式进行以下修改
=IF(C3=“",”查询值为空,请填写查询值“,IF(ISERROR(VLOOKUP(C3,C6:F10,4,FALSE))=TRUE,”请检查参数是否正确",VLOOKUP(C3,C6:F10,4,FALSE)))如下图所示,如果查找时未指定名称,则公式的计算结果为“查询值为空,请填写查询值”
如下图所示,因使用的是FALSE,精确查找,当查找值为“西瓜”时,因该值不在列表中,会产生#N/A 错误,但使用公式用,可提示有参数错误
上述公式,使用了函数ISERROR检查是否有错误值,如果有兴趣你也可以使用函数ERROR.TYPE返回错误值对应的数字,从而明确显示是哪一类型的错误,错误值对应的数字如下表所示
呵呵,关于VLOOKUP就介绍到这里,祝大家工作愉快!
第四篇:HEX2DEC函数的用法
HEX2DEC函数的用法
来源: http://excel表格制作excel表格的基本操作
HEX2DEC函数:将十六进制数转换为十进制数
功能说明:将十六进制数转换为十进制数。
语法表达式:HE2XDEC(number)
参数说明:number:表示需要转换为十进制的数。使用函数时,该参数可以直接输入数值,也可以指定单元格。参数位数不能多于10位(40位二进制),其中最高位是符号位,其余39位是数字位。如果是负数,那么用二进制数的补码表示。
使用说明:如果参数number是不合法的十六进制数,函数将返回错误值#NUM!。
如果参数number中包含字母,那么需要加上半角双引号,否则函数将返回错误值#NAME!。如果参数number的位数多于10位,函数也将返回错误值#NUM!。
如果参数number中全是数字时,参数中加或不加半角双引号,返回的结果都相同。如果函数HEX2DEC转换后的数值的位数比places指定的位数多,函数将返回错误值#NUM!。
实际应用:将十六进制数转换为十进制数。
在单元格B2中输入公式“=HEX2DEC(A2)”,转换为十进制数,然后利用自动填充功能,转换其他数值,如图11.14所示。
应用说明:在进制转换的计算中,HEX2DEC函数应用比较广泛。
上一篇:HEX2BIN函数:将十六进制数转换为二进制数
下一篇:在excel中如何按分类合并计算
第五篇:excel中if函数的用法
excel如何使用if函数?
IF函数的语法为: =IF(条件,条件成立的返回的值,条件不成立时返回的值)
例 =IF(B7=“",”“,C7/B7)公式说明:公式的意思是如果B7等于空,则在单元格里显示空,否则显示C7/B7的结果。
如下图所示。
二,多条件判断
在使用IF进行判断的时候,有时不只是一个条件,而是有多个条件组成的混合条件,这时候该怎么处理呢?
如下图所示。如果B列和C列有一例为空,则公式就会出错或出现不符的百分比,这时就需要对两列进行判断,看是不是有一列的内容是空值,如果是空值,则不显示,怎么同时对两列进行判断呢?我们可以这样设置公式 =IF(AND(B2<>”“,C2<>”“),C2/B2,”0%“)公式中借用了and函数,AND函数可以表示两个条件同时成立,如果同时成立则返回TRUE(正确),有任一个条件不成立就会返回FALSE(错误).三IF函数嵌套
IF函数嵌套就是有多个IF函数一层套一层,什么时候会用到IF嵌套呢,是有多个条件要分别判断时会用到,举个例子吧。
=IF(B2<60,”不及格“,IF(B2<70,”及格“,IF(B2<85,”良好“,”优秀“)))上面公式中就进行了多次判断,第一次是判断是不是小于60,如果小于60则显示不及格,如果不小于60呢?下面还要进行及格,良好和优秀成绩的判断,所以还需要还再用IF函数。怎么连接呢,很简单。把下一个IF作为本次IF的第二个参数。即:
=IF(第一个条件,第一个条件成立时返回的值,if(第二个条件,第二个条件成立时返回的值,if(第三个条件,第三个条件成立时返回的值...IF(。)
注意:
1、IF函数只能嵌套七层,不但针对IF,对所有的函数都适合,也就是说函数嵌套函数,不能超过七层。
2、在设置IF公式的时候,如果前面的IF条件成立,后面的就不会再判断了,所以要合理的设置判断的条件,不能这样设置 =IF(A1<100,”ABC“,IF(A1<10,”bcd"))上面的公式中,第二个条件永远无出头之日的,因为如果小于10,必然小于100,只会判断第一个条件而第二个条件没有被判断的机会。