经常被人问到怎么对两份Excel数据进行比对,提问的往往都很笼统;在工作中,有时候会需要对两份内容相近的数据记录清单进行比对,需求不同,比对的的目标和要求也会有所不同。下面Office办公助手(www.officezhushou.com)的小编根据几个常见的应用环境介绍一下Excel表格中数据比对和查找的技巧。

应用案例一:比对取出两表的交集(相同部分)

Sheet1中包含了一份数据清单A,sheet2中包含了一份数据清单B,要取得两份清单共有的数据记录(交集),也就是要找到两份清单中的相同部分。

方法1:高级筛选

高级筛选是处理重复数据的利器。

选中第一份数据清单所在的数据区域,在功能区上依次单击【数据】——【高级】(2003版本中菜单操作为【数据】——【筛选】——【高级筛选】),出现【高级筛选】对话框。

在对话框中,筛选【方式】可以根据需求选取,例如这里选择“将筛选结果复制到其他位置”;【列表区域】就是之前所选中的第一份数据清单A所在的单元格区域;【条件区域】则选取另外那份清单B所在的单元格区域。如下图所示:

点击【确定】按钮后,就可以直接得到两份清单的交集部分,效果如下图。其中两个清单中虽然都有【西瓜】和【菠萝】,但是由于数量不一致,所以没有作为相同记录被提取出来。

这个操作的原理,就是利用了高级筛选功能对于匹配指定条件的记录进行筛选的功能,把两张表中的任意一张作为条件区域,在另外一张表中就能筛选出与之相匹配的记录,忽略掉其他不相关的记录。

需要注意的是,使用高级筛选的时候务必注意两个清单的标题行要保持一致(高级筛选中作为条件区域的前提),并且在选取【列表区域】和【条件区域】的时候都要把标题行的范围包含在其中。

方法2:公式法

使用公式进行比对的方法有很多,如果是单列数据对比比较常用的函数是COUNTIF函数,如果是多列数据记录对比,SUMPRODUCT函数比较胜任。

在其中一张清单的旁边输入公式:

=SUMPRODUCT((A2&B2=Sheet2!A$2:A$13&Sheet2!B$2:B$13)*1)

并向下复制填充。其中的Sheet2!A$1:A$13和Sheet2!B$2:B$13是另一张清单中的两列数据区域,需要根据实际情况修改。公式结果等于1的记录就是两个清单的交集部分,如下图所示:

应用案例二:取出两表的差异记录

要在某一张表里取出与另一张表的差异记录,就是未在另外那张清单里面出现的部分,其原理和操作都和上面第一种场景的差不多,所不同的只是筛选后所选取的集合正好互补。

方法1:高级筛选

先将两个清单的标题行更改使之保持一致,然后选中第一份数据清单所在的数据区域,在功能区上依次单击【数据】——【高级】,出现【高级筛选】对话框。在对话框中,筛选方式选择“在原有区域显示筛选结果”;【列表区域】和【条件区域】的选取和前面场景1完全相同,如下图所示:

点击【确定】完成筛选,将筛选出来的记录全部选中按【Del】键删除(或做标记),然后点击【清除】按钮(2003版本中为【全部显示】按钮)就可以恢复筛选前的状态得到最终的结果,如下图所示:

方法2:公式法

使用公式的话,方法和场景1完全相同,只是最后需要提取的是公式结果等于0的记录。

应用案例三:取出关键字相同但数据有差异的记录

前面的两份清单中,【西瓜】和【菠萝】的货品名称虽然一致,但在两张表上的数量却不相同,在一些数据核对的场景下,就需要把这样的记录提取出来。

方法1:高级筛选

高级筛选当中可以使用特殊的公式,使得高级筛选的功能更加强大。

第一张清单所在的sheet里面,把D1单元格留空,在D2单元格内输入公式:

=VLOOKUP(A2,Sheet2!$A$2:$B$13,2,0)<>B2

然后在功能区上依次单击【数据】——【高级】,出现【高级筛选】对话框。在对话框中,筛选方式选择“在原有区域显示筛选结果”;【列表区域】选取第一张清单中的完整数据区域,【条件区域】则选取刚刚特别设计过的D1:D2单元格区域,如下图所示:

点击【确定】按钮以后,就可以得到筛选结果,就是第一张中货品名称与第二张表相同但数量却不一致的记录清单,如下图所示:

同样的,照此方法在第二张清单当中操作,也可以在第二张清单中找到其中与第一张清单数据有差异的记录。

这个方法是利用了高级筛选中可以通过自定义公式来添加筛选条件的功能,有关高级筛选中使用公式作为条件区域的用法,可参考本站发布的;另外一篇教程:

Excel中数据库函数和高级筛选条件区域设置方法详解

方法2:公式法

使用公式还是可以利用前面用到的SUMPRODUCT函数,在其中一张清单的旁边输入公式:

=SUMPRODUCT((A2=Sheet2!A$2:A$13)*(B2<>Sheet2!B$2:B$13))

并向下复制填充。公式中的包含了两个条件,第一个条件是A列数据相同,第二个条件是B列数据不相同。公式结果等于1的记录就是两个清单中数据有差异的记录,如下图所示。这个例子中也可以使用更为人熟知的VLOOKUP函数来进行匹配查询,但是VLOOKUP只适合单列数据的匹配,如果目标清单中包含了更多字段数据的差异对比,还是SUMPRODUCT函数的扩展性更强一些。

更多相关阅读

python比对excel表数据中的差异_Excel表格中数据比对和查找的几种技巧相关推荐

  1. 通过Loadrunner读取excel表数据并批量更新到Oracle中

    本文以Loadrunner的Java_Vuser脚本为例,来做一个简化版的自动化测试框架(以excel作为数据驱动),实现批量更新Oracle业务数据库的目的,通过本文例子我们还可以实现将Loadru ...

  2. Excel表格中数据比对和查找的几种技巧

    经常被人问到怎么对两份Excel数据进行比对,提问的往往都很笼统:在工作中,有时候会需要对两份内容相近的数据记录清单进行比对,需求不同,比对的的目标和要求也会有所不同.下面Office办公助手(www ...

  3. mysql中vlookup函数_EXCEL表格中VLOOKUP函数怎么用

    展开全部 Excel表格中的函数太多,给你个32313133353236313431303231363533e4b893e5b19e31333363363436些常用函数的意义吧(我之前有个回答,就复 ...

  4. 把多个excel表数据合并到一个工作簿中怎么操作

    1.如下图含有两个工作表,工资表含有姓名.年龄.工资等信息,信息表含有姓名.身份证号码.出生日期信息.现在想要将这两个表格相同姓名员工数据合并到一个表中. ​ ​ 2.点击下图选项(Excel工具箱, ...

  5. 程序解析excel中的图片_Excel表格中链接图片操作方法,以后查看图片点点鼠标就可以了...

    在我们日常工作中,用Excel编辑表格有时需要插入图片,可以与前面的文字说明相对应,但是在插入图片很多时,会造成文件很大,运行相对也慢了.今天小编就和大家分享不用插入图片也能查看的方法,既不会造成文件 ...

  6. excel同一单元格怎么换行_excel表格内怎么换行 方法有两种 一看就会 新手教程...

    很多人在用excel表格的时候都需要用到换行,但是有一些小伙伴还不知道如何去换行.今天就介绍两种单元格内换行的方法,这两种换行方式的效果不一样,大家可以根据自己的需求来选择使用哪种换行方式. 方法一: ...

  7. python怎么从excel获取数据_python如何读取excel表数据

    python读取excel表数据的方法:首先安装Excel读取数据的库xlrd:然后获取Excel文件的位置并且读取进来:接着读取指定的行和列的内容,并将内容存储在列表中:最后运行程序即可. pyth ...

  8. excel几个表合成一张_Excel中怎样把多张表格中的数据合并到一张表格中

    由于各种需要,我们往往会需要把多张表格中的数据内容合并成一张表格,那么应该怎么操作呢?我们以下为例: 下图中Sheet1是2011年的数据,sheet2是2012年的数据,最后要把它们合并在一张新表上 ...

  9. django项目中实现excel表数据导入

    依赖模块: xlrd模块安装:pip install xlrd 安装好xlrd模块之后基本的准备工作就已经完成. 实现: views.py: def import_excel(self, reques ...

最新文章

  1. localstorage的应用,对js进行缓存
  2. mysql php查询错误_php查询mysql数据库错误
  3. Java中使用Base64进行编码解码的工具类-将验证码图片使用Base64编码并返回给前端
  4. 机器学习之——学习率
  5. linux的常用操作——静态库
  6. mysql连接数详解_MySQl 修改最大连接数详解
  7. 再谈拍照,OPPO这次拿什么和iPhone7拼?
  8. JS 闭包 正则(1)
  9. python中capitalize()函数的用法
  10. matlab中asix off_MATLAB试卷+答案
  11. 数学分析思维导图整理(四)单变量积分学
  12. 计算机web前端岗位职责,web前端开发工程师岗位的职责
  13. 计算机指纹驱动程序,解决方法:联想笔记本指纹识别驱动程序安装教程[详细]...
  14. 【JAVA】每日练习——02
  15. CS5211:EDP转LVDS转换器,可替代PS8622,PS8625,CH7511等芯片!
  16. java实现火车票查询_java抓取12306信息实现火车余票查询示例
  17. SQLAlchemy中的Django风格的数据库路由器
  18. 华为AppEngine学习
  19. 【100个 Unity实用技能】| 关于触发器互相检测的必要前提条件配置
  20. XMind软件非试用版本下载(亲测有效)

热门文章

  1. NESSUS 安装 6.12 及使用
  2. 【C语言】5个成绩,去掉最高分,去掉最低分,求 平均分
  3. pcie数据反_理解PCIE链路反转和极性反转
  4. matlab 转换 地平赤道坐标系,赤道坐标系变为地平坐标系
  5. Win32_DiskDrive 硬盘 参数说明
  6. 《上海市居住证》积分申请的个人书面材料
  7. 关于日记账导入-外币
  8. 如此优秀,这18个 Python 高效编程技巧真的太香了
  9. hive:正则:匹配中文/英文/数字(REGEXP 和 rlike)
  10. 2021-01-30