今天中午刚下课,接到一个已参加工作的学生打来电话,问如何在EXCEL中比对不同表格的数据?实话说,我脑子里第一反应就是使用ACCESS的查询来做,但是,实际工作中,确实很多单位的电脑是没有安装ACCESS的,也包括我这个学生,那么是否可以采用EXCEL中自带的函数来解决呢?
完全可以,当需要比对不同表格数据时,可以采用VLOOKUP这个函数。
VLOOKUP函数语法如下:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在表格数组第一列中查找的数值。Lookup_value 可以为数值或引用。若lookup_value小于 table_array 第一列中的最小值,VLOOKUP返回错误值 #N/A。
Table_array 为两列或多列数据。使用对区域或区域名称的引用。table_array 第一列中的值是由lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
Col_index_num为table_array 中待返回的匹配值的列序号。Col_index_num 为1时,返回table_array 第一列中的数值;col_index_num 为2,返回table_array 第二列中的数值,以此类推。如果col_index_num :
小于1,VLOOKUP 返回错误值 #VALUE!。大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。
Range_lookup 为逻辑值,指定VLOOKUP查找精确的匹配值还是近似匹配值:
如果为TRUE或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value的最大数值。table_array第一列中的值必须以升序排序;否则VLOOKUP 可能无法返回正确的值。
如果为FALSE,VLOOKUP将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
什么,你研究了好久还不会。好吧,我承认,这个只是为了增强本文的学术性和复杂性的
,如果不会是正常滴。什么,你很赶时间,那么就不用研究上面那一大段了,请直接看下面的案例。
例:有两个表格,其表格数据结构相同,数据也基本一样,想比对两表中不同的工号。
前21行数据是相同的,但是如果用最古老的方式,那么我想说,后面还有近800的数据,工程量浩大呀。还是采用函数的好。
步骤:1、这两个数据表放在同一个表中,建议,先将两个数据表放在同一个工作簿的不同表中,就是EXCEL下面的SHEET1、SHEET2、SHEET3......,方法很简单,直接把其中一个表选定,剪切,打开SHEET2,然后粘贴;
2、打开SHEET1,在G2中输入公式 =VLOOKUP(B2,Sheet2!B2:B742,1,0) ,当然,你想输入到E2或者F2等等位置也都可以,至于公式中的B2以及B2:B742是根据你自己的数据来变化的,不可以硬搬;公式输入完毕,回车,然后直接选定G2单元格右下角的“+”,按住鼠标左键拖动,直到表格数据尾部,从下图可以看到,有些数据是一样的,而有些却显示为
#N/A ,显示为错误信息的就是指此表中有,但是另一个表中无的;
3、打开SHEET2,在F2中输入公式, =VLOOKUP(B2,Sheet1!B2:B757,1,0) ,此处我故意换了位置,大家可以看看公式中数据的选择该如何变化,公式式输入完毕,回车,同样选定F2单元格右下角的“+”,按住鼠标左键拖动,直到表格数据尾部,显示为 #N/A 的,就表示SHEET2中有而SHEET1中无;至此,两表的差异数据就能找出来了。
在两个表中,我们可以看到对比列的右边有一列,其中的数值都是1,这一列是做什么用的呢?因为在比对的时候,我们除了比对两表的数据,也在核对同一个表中是否有重复的工号,姓名是有重名的可能性,但是工号却应该具有唯一性,所以,我们也要核对一下表中是否有重复数据,以SHEET2表为例,在G2中我们可以输入公式 =COUNTIF(B2:B742,B2),如果数值为1,就代表没有重复值,其值是唯一的,如果返回值大于1,则说明有重复。以下图为例,可见002403这个数据出现了2次,因此在G132中返回值为2,以此类推,如果还有002403,返回值将会为3、4、5......,并且返回值顺序是从大到小,从上至下。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。