欢迎访问华乐美文网

excel匹配函数

优秀范文2019-06-10 22:30书业网

篇一:常用EXCEL公式VLOOKUP函数用法详解

EXCEL公式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 BC 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 代表本工作表要查找的单元格(意思是要到别的工作表查找与这个单元格相同

篇二:EXCEL中vlookup函数使用方法和技巧

根据我使用vlookup的经验,简单介绍一下,可能不全面,供参考。

例:sheet1:“全年级所有学生的详细信息”

A B C 1 姓名 学号 班级

2 张三 325 一班

3 李四 316 一班

4 王五 374 三班

5 陈六 385 三班

6 刘七 306 一班

…………………………………

Sheet2:“获奖学生的学号”

A B C 1 姓名 学号 班级

2 李四 316 3 陈六 385 4 刘七 306 ……………………..

目标:在sheet2的C列中为所有获奖学生填上班级

步骤:1.在sheet2的C2中录入:=VLOOKUP(A2,Sheet1!$A$1:$C$6,3,FALSE)

2.下拉

结果:

A B C 1 姓名 学号 班级

2 李四 316 一班

3 陈六 385 三班

4 刘七 306 一班

……………………..

公式解析:

1.Lookup_value:需要查找或比对的数据

如果这个数据是数字的话,通常要先做几个准备工作:

(1)将两个表中需要比对的数据列移到A列。以上例就是要把两个表中的学号放在A列。

(2)确认A列的数据真的是数字格式。有些数据是从其他数据库里导出来的,可能不是Excel认可的数字格式。在这种情况下用“设置单元格格式”把单元格更改为“数值”通常是没用的。一般我采用的方法是:

①在A列后面插入两个空列B列、C列,B2=A2+0,运算后的数据肯定就是数字格式了。下拉,使整列数据变为数字格式。然后选中B列,复制。再选中C列,右键“选择性粘贴”,选择“值和数字格式”,确定。删除A、B列,使C列变成A列。

②如果B2=A2+0后,显示错误信息,那么很可能是A列的数据中带有空格,此时可应用MID函数。MID函数的功能是截取一部分字符。如A2是“ 12345”,表面看起来是5位数,其实前面还有1位空格。那么MID(A2,2,5),意思是在A2中从第2个字符开始截取,一共截取5位,结果显示为“12345”,空格消失且结果一般会自动变为数字格式。

(3)将两个表中位于A列的数字以升序排列。

2.Table_array:指定一个查找的区域

需要注意的是,一般我们要手动在这个区域上加“$”符号,这个符号的作用是将区域固定下来。例如A1:C6,要变为$A$1:$C$6。不然我们一会做“下拉”操作的时候,A1:C6就会变成A2:C7、A3:C8??

篇三:VLOOKUP、ISERROR和IF函数在excel中的高效应用 匹配查找

工作上遇到了想在两个不同的EXCEL表里面进行数据的匹配,如果有相同的数据项,则输出一个“YES”,如果发现有不同的数据项则输出“NO”,这里用到三个EXCEL的函数,觉得非常的好用,特贴出来,也是小研究一下,发现EXCEL的功能的确是挺强大的。这里用到了三个函数:VLOOKUP、ISERROR和IF,首先对这三个函数做个介绍。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~VLOOKUP:功能是在表格的首列查找指定的数据,并返回指定的数据所在行中的指定列处的数据。函数表达式是:

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

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。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ISERROR:它属于IS系列,IS系列用来检验数值或引用类型,有九个相关的函数:ISBLANK(value) :判断值是否为空白单元格。

ISERR(value) :判断值是否为任意错误值(除去 #N/A)。

ISERROR(value) :判断值是否为任意错误值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!)。

ISLOGICAL(value) :判断值是否为逻辑值。

ISNA(value) :判断值是否为错误值 #N/A(值不存在)。

ISNONTEXT(value) :判断值是否为不是文本的任意项(注意此函数在值为空白单元格时返回 TRUE)。

ISNUMBER(value) :判断值是否为数字。

ISREF(value) : 判断值是否为引用。

ISTEXT(value) :判断值是否为文本。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IF:执行逻辑判断,它可以根据逻辑表达式的真假,返回不同的结果,从而执行数值或公式的条件检测任务。函数表达式为:IF(logical_test,value_if_true,value_if_false),其中含义如下所示:

logical_test:要检查的条件。

value_if_true:条件为真时返回的值。

value_if_false:条件为假时返回的值。

———————————————————————————————————————————————————下面介绍下通过上述的三个函数如何达到我想要的要求的,下图是工作中的两个EXCEL表,sheet1和sheet2,现在要将sheet2的每一行数据在sheet1中查找匹配,如有sheet1中存在,则在sheet2中的E列显示“存在”,否则显示“不存在”。

sheet2

sheet1

首先使用了VLOOKUP函数将sheet1中的数据在sheet2中进行查找,

=VLOOKUP(A2,sheet1!$A$2:$C$952,1,FALSE),其中A2表示用来匹配项的数据,将A2在sheet1的所有列中查找就是使用第二个条件:sheet1!$A$2:$C$952,“$”表示绝对引用,复制的时候不会随着单元格位置变化而变化,1表示匹配成功后返回第一列的数据,否则返回#N/A,FALSE表示返回精确匹配值。

注:绝对引用和相对引用只要在公式栏里面对应的数据下按F4功能键即可切换。

当有返回结果后刚开始直接使用IF去判断了,公式是:

=IF(VLOOKUP(A2,sheet1!$A$2:$C$952,1,FALSE)=A2,"存在","不存在"),这个时候发现当匹配成功的时候输出了“存在”,当匹配不成功是却输出了“#N/A”,一直没法实现想要的结果,后来发现VLOOKUP只能输出指定的值或者“#N/A”,而与A2判断的结果也为(来自:WwW.CssYq.com 书业 网:excel匹配函数)“#N/A”,作为IF函数是无法识别“#N/A”,这样导致不会输出“不存在”,所以要想办法将IF的第一个条件的结果是“Ture”or "False",于是就找到了函数ISERROR(Value),这个输出的结果是“Ture”or "False",于是公式就变成了

=IF(ISERROR(VLOOKUP(A2,sheet1!$A$2:$C$952,1,FALSE)),"不存在","存在"),大功告成,输出自己想要的结果,当在shhet2中的项目能在sheet1中找到时输出“存在”,找不到时输出“不存在”。

总结:VLOOKUP的函数比较好用,可以寻找并且匹配,但是要注意只能是匹配项在首列,如果不是则要用HLOOKUP函数。EXCEL的函数功能还是挺强大的,好好研究对于我们数据统计和处理是非常有帮助的,目前对于VLOOKUP、ISERROR和IF三个函数有一定的认识,以后还得继续研究学习。

Copyright @ 2012-2024华乐美文网 All Rights Reserved. 版权所有