如何用excel对比两份excel数据对比公式

网页设计教程与开发
提供各种常见网页效果
提供各种各样的设计教程
装扮QQ,让QQ变得更酷
设计参考,提高自升水平
学习服务器和操作系统
提供各种素材和工具
收藏学习资料
您现在的位置:&&>>&&>>&&>>&&>>&正文
☆☆☆怎么样比对两张excel表中地两列数据?☆☆☆
举个例子,有两个excel文件:excel1中是权威数据,excel2中是需要进行比对的数据。excel1中的数据远远多于excel2中的数据。excel1的数据为:姓名 工号周杰伦 1费玉清 2梁静茹 3汪峰 4excel2的数据为:姓名 工号费玉清 2汪峰 6可以看到,excel1中汪峰的工号为4,但是excel2中汪峰的工号却为6,是错误的。请问用什么函数将excel2中这些错误的工号找出来呢?十分感谢!
本问题第1个回答
看星星,,,看月亮,,,      ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆     ☆☆ ☆☆☆ ☆☆☆ ☆ ☆☆ ☆☆☆    ☆☆ ☆☆ ☆☆ ☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆ ☆☆
本问题第2个回答
本问题第3个回答
十分感谢楼上的大侠哦!但是用你的vlookup公式是核对不出来的。我把最后一个参数改为false才出正确的结果。因为需要匹配精确值哦!
本问题第4个回答
VLOOKUP一下就行了。QQ群
OFFICE应用挖掘& MS OFFICE(ACCESS\EXCE\WORD等应用技术探讨与交流!技术群,请阅群论坛中的《踢人规则》
本问题第5个回答
True是模糊查找,false是精确查找自带的帮助是错的
转载请注明:破洛洛(谢谢合作)
上一篇文章: 下一篇文章:
网友评论:you have been blockedexcel如何进行两个工作表数据的对比
excel如何进行两个工作表数据的对比
学习啦【Excel表格】 编辑:嘉铭
  在利用处理记录时,我们通常会面对一种情况,就是将两张工作表进行对比,以便从中找出不同记录或数据。下面就跟学习啦小编一起看看吧。
  excel两个工作表数据进行对比的步骤
  首先要将两个表格放到一个工作簿中,一个放在sheet1,一个放在sheet2.
  在sheet2 D列处设置,点击&公式&--&插入函数&,选择函数&VLOOKUP&。
  按照如图所示设置参数,点击确定。
  D列就会出现一些数据。如果两个表格数据相同,则显示&1&;数据不同则显示&#N/A&。即可完成两个表格的对比。
excel两个工作表数据对比的相关文章:
[excel如何进行两个工作表数据的对比]相关的文章
看过本文的人还看了
989人看了觉得好
2781人看了觉得好
1073人看了觉得好
【Excel表格】图文推荐62502人阅读
情景对话:
Marketing给你传了一个EXCEL,发话:这是最新版本,上次的作废,把新的release出去吧。
我,打开...纳尼?!没有mark,没有comments?我怎么知道你改了什么??每个都对过来?!!我能爆粗口么 !@&(……@)!#*&……*
相信很多人都有这种情况,这个时候你i就需要强大的助手来比较EXCEL, 正题如下:
1). 如果你已经装了EXCEL2013,那么恭喜你,可以用上“Spreadsheet Compare 2013”这个微软自带的强大工具了。在Office2013 Tools 中你可以找到这个工具,确实非常强大,直观的比较,还可以导出比对结果,简单易用,人性化,要的就是这个效果,相信用过后你也会爱不释手。如果你还在惆怅如何比较 EXCEL 文件,赶紧使用吧,它是迄今为止本人觉得最好的比较工具,没有之一。
2). 如果你不幸还在用老的EXCEL,当然可以比较的。下面转的文章也可助你一臂之力(有点费劲哦)。
说起文件内容比较,或许我们首先想到的是UltraCompare这类专业比较的软件,其功能非常强大,能够对基于文本的文件内容作出快速、准确的比较,有详细的差异报告,非常便于分析。其实,各种版本控制软件中也包含有或多或少的比较功能,如TFS、CVS、SVN等。但是如果待比较的文件不是基于文本类型的,那就无能为力了。今天我就来谈一谈Excel的比较方法及其特点,也和大家共同探讨一下,如果你有更好的方法,欢迎分享。
一、Excel的文件架构
Excel的文件结构,一个Excel是一个工作簿,其中可以包含若干个工作表,正式由于这个架构,造成比较Excel中的内容比较困难,尤其当工作表中的数据量很大时,常规的比较软件更是无能为力。
二、三种比较方法
下面我分别用三种方法来比较两个Excel中的内容,首先准备两个测试Excel,为了简单起见,两个Excel都只包含一个工作表,其中填充了一些数字:
图1、1.xlsx
图2、2.xlsx
1、首先我用比较笨的方法,写一段程序,逐个比较单元格(假设两个Excel中包含的工作表的命名和个数完全相同):
&&&&&&&&private&void&fnExcelCompare(string&v_strSourcePath,&string&v_strDestPath)
&&&&&&&&&&&&this.__int内容不同单元格个数&=&0;
&&&&&&&&&&&&this.__dic内容不同.Clear();
&&&&&&&&&&&&Excel.Application&app&=&new&Excel.Application();
&&&&&&&&&&&&app.DisplayAlerts&=&false;
&&&&&&&&&&&&Excel.Workbook&srcBook&=&app.Workbooks.Open(v_strSourcePath);
&&&&&&&&&&&&Excel.Workbook&destBook&=&app.Workbooks.Open(v_strDestPath);
&&&&&&&&&&&&FileStream&log&=&new&FileStream(System.Windows.Forms.Application.StartupPath&+&@&\Logs\ReportCheck.log&,&FileMode.OpenOrCreate,&FileAccess.ReadWrite);
&&&&&&&&&&&&StreamWriter&writer&=&new&StreamWriter(log);
&&&&&&&&&&&&string&msg&=&string.E
&&&&&&&&&&&&writer.WriteLine(&*********************************************************************************\n&);
&&&&&&&&&&&&foreach&(Excel.Worksheet&sheet&in&srcBook.Worksheets)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&for&(int&i&=&1;&i&&=&sheet.UsedRange.Rows.C&i++)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&for&(int&j&=&1;&j&&=&sheet.UsedRange.Columns.C&j++)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&string&src&=&sheet.Cells[i,&j].Value2&==&null&?&string.Empty&:&sheet.Cells[i,&j].Value2.ToString();
&&&&&&&&&&&&&&&&&&&&&&&&string&dest&=&destBook.Worksheets[sheet.Name].Cells[i,&j].Value2&==&null&?&string.Empty&:&destBook.Worksheets[sheet.Name].Cells[i,&j].Value2.ToString();
&&&&&&&&&&&&&&&&&&&&&&&&if&(src&!=&dest)
&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&msg&=&DateTime.Now.ToString()&+&&------&&+&sheet.Name&+&&&【&&+&this.fnGetExcelAddress(i,&j)&+&&】单元格中的内容不相同\n&;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&this.__int内容不同单元格个数++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&this.__dic内容不同.Add(this.__int内容不同单元格个数,&msg);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&writer.WriteLine(msg);
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&&&&&writer.WriteLine(&*********************************************************************************\n&);
&&&&&&&&&&&&srcBook.Save();
&&&&&&&&&&&&destBook.Save();
&&&&&&&&&&&&app.Quit();
&&&&&&&&&&&&System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
&&&&&&&&&&&&System.Runtime.InteropServices.Marshal.ReleaseComObject(srcBook);
&&&&&&&&&&&&System.Runtime.InteropServices.Marshal.ReleaseComObject(destBook);
&&&&&&&&&&&&app&=&null;
&&&&&&&&&&&&srcBook&=&null;
&&&&&&&&&&&&destBook&=&null;
&&&&&&&&&&&&GC.Collect();
2、使用OpenXML SDK 2.0
前面的文章讲过OpenXML SDK及其相关工具的简单用法,其实还可以用它来比较Excel,当然,仅限于比较Excel 2007、Excel 2010。
如果你还没有安装OpenXML SDK 2.0,可以在下载。
下载完毕,一步步安装结束后,就可以使用了。
1)打开Productivity Tool:
2)对这个工具做一些简单配置:
可以选择显示行号、忽略命名空间、忽略声明:
选择待比较的Excel版本,我使用的Excel 2010,故选择第二个:
3)点击【Compare Files】,然后选择两个待比较的Excel文件,点击【OK】:
4)可以看到Excel被分拆成了一个个part,标记为绿色的表示内容中有不同:
5)选择一个标记为绿色的part,点击【View Par Diff】,可以查看具体的明细:
这个界面与传统的比较软件中的界面非常相似,可以很容易的看出不同之处。
这种方法的缺点是比较结果不够直观,难以获取比较的汇总结果,当数据量很大时更是如此。
3、使用SpreadshCompare
SpreadshCompare是国外人写的一个VBA插件,开源免费,可以在上下载,最新版本是1.15,支持Excel 2003,Excel 2007,目前还不支持Excel 2010
x64。由于我使用的是Excel 2010 x64,故暂时在虚拟机中进行测试。
我使用的Hyper-V,安装了Windows Server 2003 R2,Office 2007。
1)下载完毕安装后,在Excel的【加载项】中可以看到一个天平的小图标:
2)先打开两个待比较的Excel:1.xlsx、2.xlsx,然后分别选择两个待比较的Excel,点击【Next】:
3)选择逐单元格比较,保持大小写敏感,其他选项默认:
4)分别选择待比较的工作表,点击【Next】:
5)选择比较所有的区域,点击【Next】:
6)选择生成汇总表选项,保持默认即可:
7)设置工作表的顺序,然后点击【Compare】:
8)首先会给出一个简短的汇总信息:
9)点击【确定】后会生成两个工作簿,一个记录所有不同之处,另一个给出单元格对比分析:
10)同时对源文件也用颜色进行了标示,黄色表示不同:
经过大量数据测试,该插件性能很高,速度较快。以后我会试着修改下这个插件的源代码,争取支持Excel 2010 x64。
其他类似的还有(商业软件)、(商业软件)、(商业软件)等。
本次我们畅谈了下Excel的比较问题,给出了三种解决方案,三种方案各有优劣,只是适用场合不同,请根据你的需求进行选择。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:123139次
排名:千里之外
转载:44篇
(1)(1)(1)(1)(5)(3)(1)(2)(1)(1)(2)(5)(8)(10)(5)

我要回帖

更多关于 excel 2列数据对比 的文章

 

随机推荐