
经常有人问我如何比较两个Excel数据,这些问题通常很笼统. 在工作中,有时需要比较两个内容相似的数据记录列表. 要求是不同的. 目标和要求将有所不同. 下面的Office Assistant()编辑器介绍了基于几种常见应用程序环境在Excel表中进行数据比较和搜索的技能.
应用案例1: 比较两个表(相同部分)的交集
Sheet1包含一个数据列表A,Sheet2包含一个数据列表B. 要获取两个列表共有的数据记录(交集),即在两个列表中找到相同的部分.

方法1: 高级过滤
高级过滤是处理重复数据的强大工具.
选择第一个数据列表所在的数据区域,然后依次单击功能区域上的[Data]-[Advanced](2003版中的菜单操作为[Data]-[Filter]-[Advanced Filter ]),将显示[高级筛选器]对话框.
在对话框中,可以根据需要选择过滤器[方法],例如,在此处选择“将过滤器结果复制到其他位置”. [列表区域]是先前选择的第一数据列表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的记录是两个列表的交集,如下图所示:


应用案例2: 取出两个表的差异记录
从另一个表中取出一个表的差异记录,即未出现在另一列表中的部分. 原理和操作与上面的第一种情况相似,唯一的区别是筛选后选择的集合完全互补.
方法1: 高级过滤
首先更改两个列表的标题行以使其一致,然后选择第一个数据列表所在的数据区域,然后单击功能区域上的[Data]-[Advanced],然后出现[Advanced Filter]对话框. 在对话框中,选择过滤方法“在原始区域显示过滤结果”; [列表区域]和[条件区域]的选择与以前的方案1完全相同,如下图所示:

单击[确定]完成过滤,选择所有过滤的记录,然后按[Del]键删除(或标记),然后单击[清除]按钮(2003版中的[全部显示]按钮)还原过滤器先前的状态将得到最终结果,如下图所示:

方法2: 公式方法
如果使用公式,则该方法与方案1完全相同,除了您需要提取的最后一件事是公式结果等于0的记录.
应用案例3: 检索具有相同关键字但数据不同的记录
在前两个列表中,尽管[西瓜]和[菠萝]的产品名称相同,但两个表上的数量却不同. 在某些数据验证方案中,需要提取此类记录.
方法1: 高级过滤
特殊公式可用于高级过滤,以使高级过滤功能更强大.
在第一个列表所在的工作表中,将单元格D1留空,然后在单元格D2中输入公式:
= VLOOKUP(A2,Sheet2!$ A $ 2: $ B $ 13,2,0)B2
然后在功能区域上单击[数据]-[高级],将出现[高级过滤器]对话框. 在对话框中,选择过滤方法“在原始区域显示过滤结果”; [列表区域]在第一个列表中选择完整的数据区域,[条件区域]选择特殊设计的D1: D2单元区域. 如下图所示:

单击[确定]按钮后,您可以得到筛选结果,即第一张和第二张中具有相同产品名称但数量不一致的记录列表,如下图所示:

类似地,按照此方法在第二个列表中进行操作,您还可以在第二个列表中找到与第一个列表不同的记录.
此方法利用在高级过滤中通过自定义公式添加过滤条件的功能. 有关将公式用作高级过滤中的条件区域的信息,请访问此站点;另一个教程:
Excel中功能和高级过滤条件区域设置方法的详细说明
方法2: 公式方法
使用公式,您仍然可以使用先前使用的SUMPRODUCT函数,并在列表之一旁边输入公式:
= SUMPRODUCT((A2 = Sheet2!A $ 2: A $ 13)*(B2Sheet2!B $ 2: B $ 13))
然后复制并填写. 该公式包含两个条件. 第一个条件是列A中的数据相同,第二个条件是列B中的数据不同. 公式结果等于1的记录是两个列表中具有不同数据的记录,如下图所示. 在此示例中,更著名的VLOOKUP函数也可以用于执行匹配查询,但是VLOOKUP仅适用于单列数据匹配. 如果目标列表包含更多的字段数据差异,则SUMPRODUCT函数的可伸缩性更高.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-291839-1.html
”我摇摇头说