如何高效地在Excel中筛选和比对两个表格中的重复数据记录?
- 数据库
- 2025-10-29
- 5
在处理Excel数据时,我们经常会遇到需要筛选重复记录的情况,当两个Excel表中的数据需要合并,并筛选出重复记录时,我们可以采用以下几种方法:
使用“查找重复”功能
-
打开Excel文件:打开包含两个表的Excel文件。
-
选择第一个表:选中第一个需要筛选重复记录的表。
-
查找重复:在“数据”选项卡中,点击“查找重复”按钮。
-
设置条件:在弹出的对话框中,选择需要比较的列,勾选“仅显示重复值”或“仅显示重复值和不重复值”。
-
应用筛选:点击“确定”按钮,Excel将筛选出重复记录。

-
处理重复记录:根据需要,可以选择删除重复记录或合并重复记录。
使用公式
-
打开Excel文件:打开包含两个表的Excel文件。
-
合并数据:将两个表的数据合并到一个新的工作表中。
-
使用公式:在合并后的工作表中,选择一个空白单元格,输入以下公式:
=IF(COUNTIF($A$2:$A$1340, A2)>1, "重复", "")
$A$2:$A$1340为第一个表的数据区域,A2为当前单元格。
-
拖动填充:将公式向下拖动,填充到整个工作表。
-
筛选重复记录:在合并后的工作表中,选择“重复”单元格所在的列,点击“数据”选项卡中的“筛选”按钮,勾选“重复”。
-
打开Excel文件:打开包含两个表的Excel文件。
-
插入VBA代码:按下Alt + F11键,在“插入”选项卡中,选择“模块”,然后粘贴以下代码:

Sub FindDuplicates() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim lastRow As Long Set ws = ThisWorkbook.Sheets("Sheet1") '修改为你的工作表名 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row '修改为你的数据列 Set rng = ws.Range("A1:A" & lastRow) For Each cell In rng If Application.WorksheetFunction.CountIf(rng, cell.Value) > 1 Then ws.Cells(cell.Row, cell.Column + 1).Value = "重复" End If Next cell End Sub
-
运行宏:按下F5键运行宏,Excel将筛选出重复记录。
- 在筛选出的重复记录中,选择需要删除的记录。
- 右键点击选中的记录,选择“删除”。
- 确认删除操作。
使用VBA宏
表格示例
| 数据1 | 数据2 | 数据3 | 重复标记 |
|---|---|---|---|
| 张三 | 20 | 男生 | |
| 李四 | 20 | 男生 | 重复 |
| 王五 | 30 | 女生 | |
| 张三 | 20 | 男生 | 重复 |
FAQs
Q1:如何判断重复记录是根据哪些字段?
A1:判断重复记录可以根据一个或多个字段,在“查找重复”功能中,选择需要比较的列即可,在公式中,可以使用COUNTIF函数指定比较的字段。
Q2:如何删除重复记录?
A2:在筛选出重复记录后,可以选择删除重复记录或合并重复记录,删除重复记录的方法如下: