怎样使用vlookup函数实现不同excel表格之间的数据关联

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

怎样使用vlookup函数实现不同excel表格之间的

数据关联

在工作中遇到一些统计表格的事情,其实就是很简单的统计,粘贴、复制,但是不断的重复简单的粘贴、复制就是一项非常费时的巨大工程,为了简化操作流程,提高工作效率,特地在网上搜了些相关的资料来联系,个人也得到一些小的体会,今天有兴致和大家分享一下,好好学习哟,有什么问题大家可以交流交流哈。下面我们通过一个小小的例子来说明如何用vllkup简化我们的工作。

分两种情况:

1同一个sheet中有两个表格,一个是旧表(原始数据),一个是新表(做好后能得到我们所需要的数据);

2sheet1中一个表(原始数据),sheet2中一个表(新表),也是两个表,这两种情况都差不多,都是以原表为基础,得到新表

我们看第一种情况,同一个sheet中有两个表,

原表为:

新表为:

这里原表为已知,新表中有数据的部分为,空格的地方都是我们需要填写的,其实一对比这两个表,我们很容易发现新表要填的内容就是原表中能找到的,但是行的顺序变了,如果表格很大,我们反复使用粘贴复制来完成新表中的空缺,眼睛都会找花,会很累,但是,现在我们用vlookup,就easy多了。

循序渐进学Excel2003成为高手的捷径数据录入与处理...

选择“新表”中的B2单元格,如表1所示。单击[fx]按钮,出现“插入函数”对话框。在类别中选择“全部”,然后找到VLOOKUP函数,单击[确定]按钮,出现“函数参数”对话框,如表2所示。

表1

表2

第一个参数“lookup_value”为两个表格共有的信息,也就是供excel查询匹配的依据,也就是“新表”中的A2单元格。这里我们可以填入$A2,加一个$,是为了说明列不变,是绝对的,而当你向下拖动的时候,列会相应的改变。这样会简化我们得工作,注意一定要选择新表内的信息,因为要获得的是按照新表的排列顺序排序。

第二个参数“table_array”为需要搜索和提取数据的数据区域,这里也就是整个“基础数据”的数据,即“基础数据!A2:D5”。为了防止出现问题,这里,我们加上“$”,即“基础数据!$A$2:$D$5”,这样就变成绝对引用了。

第三个参数为满足条件的数据在数组区域内中的列序号,在本例中,我们新表B2要提取的是“基础数据!$A$2:$D$5”这个区域中B2数据,根据第一个参数返回第几列的值,这里我们填入“2”,也就是返回性别的值(当然如果性别放置在G列,我们就输入7)。(我的理解是,新表中性别这一列要返回原表中性别所在的列,也就是性别在原表中是第几列就填几,一般我们为了提高效率,在拖动后,只需要

改这个返回几列的数字,其他都不用改,方便快捷啊)

第四个参数为指定在查找时是要求精确匹配还是大致匹配,如果填入“0”,则为精确匹配。这可含糊不得的,我们需要的是精确匹配,所以填入“0”(请注意:Excel帮助里说“为0时是大致匹配”,但很多人使用后都认为,微软在这里可能弄错了,为0时应为精确匹配),此时的情形如图4所示。这里填1,软件会提示是true,填0会提示为false,但是根据经验我们填0,提示为false,但是是正确的,可能是软件编程的时候出了问题,毕竟是盗版的,理解哈。

(注明一下,不要按照表格中的填写,按照文字所述才是快捷之道,上表中,A2应改为$A2A2:D5应改为$A$2:$D$5最后一行固定为0,我们所要改动的只有第三行,col_index_num。

按[确定]按钮退出,即可看到C2单元格已经出现了正确的结果。如图5:

把B2单元格向右拖动复制到D2单元格,我们需要手工改一下,只需要改之前我说的第三行,即可显示正确数据。一行数据出来了,对照了一下,数据正确无误,再对整个工作表的列进行拖动填充,拖动完之后,新表就出来了。(向下拉什复制不存在错误问题的,这里不用担心,只需要保证我们所拖动复制的行不出问题就没事了)。这样,我们就可以节省很多时间了。

在最后我还得说一点就是,这里我们举的例子,原表第一列是姓名,第二例是性别,第三列是年龄,第四列是籍贯,而新表也是这样的,那假如原表的列还是不变,第一列是姓名,第二列是性别,第三列是年龄,第四列是籍贯,而新表的列发生变化了怎么办?情况会是怎样呢?根据我个人的经验,只要原表的第一列是姓名,新表的第一列也是姓名(姓名不可雷同,就是同一个表中不能有两个一样的姓名),不管新表其他列怎么变(这里说的是列的顺序,与原表比较而言哈),都按照上面的方法来处理。

但是如果新表第一列跟原表不一致,(原表第一列为姓名,新表第一列不是姓名,而是其他的,比如年龄,那么你就需要手动把新表中姓名这一列移到第一列来,再按照上面同样的办法处理,否则,就会出错哟。(个人经验哈,不足之处还请指出)。

第一个参数“lookup_value”为两个表格共有的信息,也就是供excel查询匹配的依据,也就是“新表”中的A2单元格。注意一定要选择新表内的信息,因为要获得的是按照新表的排列顺序排序。

第二个参数“table_array”为需要搜索和提取数据的数据区域,这里也就是整个“基础数据”的数据,即“基础数据!A2:D 5”。为了防止出现问题,这里,我们加上“$”此处一定要手动加上绝对引用防止出错,即“基础数据!$A$2:$D$5”,这样就变成绝对引用了。

第三个参数为满足条件的数据在数组区域内中的列序号,在本例中,我们新表B2要提取的是“基础数

据!$A$2:$D$5”这个区域中B2数据,根据第一个参数返回第几列的值,这里我们填入“2”,也就是返

回性别的值(当然如果性别放置在G列,我们就输入7)。

第四个参数为指定在查找时是要求精确匹配还是大致匹配,如果填入“0”,则为精确匹配。这可含糊不得的,我们需要的是精确匹配,所以填入“0”(请注意:Excel帮助里说“为0时是大致匹配”,但很多人使用后都认为,微软在这里可能弄错了,为0时应为精确匹配),此时的情形如图4所示。

/showpic.html -

blogid=4a7e19be0100bitj&url=/orignal/4a7e19bet5eb3aecf6b7d

按[确定]按钮退出,即可看到C2单元格已经出现了正确的结果。如图5:

向下拉填充柄即可。

这样,我们就可以节省很多时间了

方法2

假设sheet1姓名在A列,身份证在B列sheet2中姓名输入在A列,在B2输入公式

=IF(ISNA(VLOOKUP(A2,sheet1!A:B,2,)),"",VLOOKUP(A2,sheet1!A:B,2,))回车确定,鼠标对准单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往下拖动填充

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!)。

相关文档
最新文档