Excel 怎么去重 / 删除重复项
客户名单、订单记录、手机号列表……重复数据几乎是每张表都会遇到的麻烦。本文讲清 Excel 里三种常见去重办法——哪种适合哪种场景——再教你用超级表一键去重,几万行操作起来也毫不卡顿。
办法一:数据→删除重复值(最快,但会直接改原数据)
这是 Excel 内置的去重入口,步骤很少:
- 选中要去重的数据区域(或点任意一个有数据的单元格)。
- 点菜单栏「数据」→「删除重复值」。
- 在弹出的对话框里勾选要参与判断的列——只勾一列就是「该列相同算重复」,全勾就是「每列都相同才算重复」。
- 点「确定」,Excel 保留第一次出现的行,把其余重复行直接删掉,并弹出提示告诉你删了几条。
这个办法最直接,适合一次性清理、不需要留备份的场景。
注意事项:操作完成后原始数据已被修改,无法撤回(除非立即按 Ctrl+Z)。处理前强烈建议先另存一份或复制一列备份。多列去重时,如果某列有空格或格式不一致(例如「张三 」和「张三」),Excel 会认为它们不同——去重前先清洗格式。
办法二:COUNTIF 标记重复(先看后删,更安全)
如果你不确定哪些行是重复的、不敢直接删,可以先用 COUNTIF 给每行贴标签,再筛选删除。
假设要检查 A 列(如手机号)是否重复,在 B2 输入:
=COUNTIF(A:A, A2)>1
返回 TRUE 表示这个值在 A 列出现了不止一次(是重复的),FALSE 表示唯一。下拉填充整列后,筛选 B 列为 TRUE 的行,逐一确认后删除即可。
想看重复了几次,可以把公式改成:
=COUNTIF(A:A, A2)
返回数字,值为 1 表示唯一,大于 1 表示重复出现的次数。
如果需要按多列组合判断(例如姓名+手机号都相同才算重复),可以用 COUNTIFS:
=COUNTIFS(A:A, A2, B:B, B2)>1
这种办法保留了原数据,给你时间仔细看再决定删不删,比「删除重复值」更安全,也更灵活。
办法三:UNIQUE 函数(新版 Excel,直接提取唯一值)
Microsoft 365 和 Excel 2021 及以上版本新增了动态数组函数 UNIQUE,可以直接把唯一值提取到一个新区域,不破坏原数据:
=UNIQUE(A2:A100)
结果会自动溢出到下方空白单元格,原数据一条不动。如果要按多列组合去重,可以传入多列范围:
=UNIQUE(A2:B100)
Excel 会把 A、B 两列视为一个组合,只要有一列不同就算不重复行,保留下来。
UNIQUE 的缺点是只能在 Microsoft 365 或较新版本 Excel 中使用;老版本 Excel(2016 及以下)不支持,公式会直接报错。
这些办法的麻烦
三种办法各有局限,实际操作时经常踩坑:
- 「删除重复值」直接删、不可逆:点确认就没了,忘了备份就追悔莫及。
- 按多列去重容易出错:勾选哪几列、顺序对不对——一旦勾错,数据就删错了,很难发现。
- COUNTIF 要手动二次操作:先写公式、筛选、再删行,步骤多,几万行的表操作下来费时费力。
- 大数据量明显变慢:几万行甚至十几万行数据,Excel 的「删除重复值」卡顿严重,COUNTIF 全表扫描也会让 Excel 转圈。
- UNIQUE 有版本限制:老版本 Excel 不能用,共享给别人的文件也可能出兼容性问题。
更简单:超级表一键去重(可先预览再确认)
超级表(TableDI)是一款桌面端高能表格助手,macOS 和 Windows 均可使用,离线本地运行,无需登录。它把「去重」做成了一个可视化的一键操作——在真正删行之前,你可以先预览哪些行会被删掉,确认无误再执行。
步骤如下:
- 把 Excel 文件拖进超级表,或直接新建表格粘入数据。
- 点击工具栏「一键去重」按钮。
- 选择参与去重判断的列——可以选单列,也可以多选几列做组合判断。
- 超级表会先高亮显示将被删除的重复行,你可以逐行确认,也可以直接点「确认删除」。
- 完成后只保留每组重复中最先出现的那条,其余删除。
全程可预览、可取消,几万行的表格操作也流畅不卡顿。如果数据格式参差不齐(例如「上海」和「上海 」多了空格),还可以配合超级表 AI 一句话清洗数据,先清洗再去重,一气呵成。
超级表做法 vs Excel 去重
| 对比项 | Excel 删除重复值 | Excel COUNTIF 标记 | 超级表 |
|---|---|---|---|
| 能否预览再删 | 否,直接删 | 筛选后手动看 | 先高亮预览,确认再删 |
| 按多列组合去重 | 勾列,容易选错 | COUNTIFS,要自己写 | 点选多列,简单 |
| 几万行速度 | 明显卡顿 | 全表扫描,慢 | 跟手不卡 |
| 操作步骤 | 3 步 | 5 步以上 | 3 步以内 |
| 数据格式不一致 | 「张三」≠「张三 」,漏删 | 同上 | 可先 AI 清洗再去重 |
| 版本要求 | Excel 2007+ | Excel 2007+ | macOS / Windows,离线 |
常见问题
怎么按多列去重?
在 Excel 的「删除重复值」对话框里,勾选多列即可——勾选的列全部相同才会被认为是重复行。例如勾选「姓名」和「手机号」两列,只有姓名和手机号都完全一样的行才会被删掉,其中一列不同就保留。用 COUNTIF 标记时,改用 COUNTIFS 传入多组「列+条件」就行,详见COUNTIF 计数与统计重复。
去重保留第一条还是最后一条?
Excel 的「删除重复值」默认保留第一条出现的行,删掉后续的重复行。如果你想保留最后一条,可以先把数据整体倒序排列(把最后一条变成第一条),再运行去重,然后重新排回去。超级表同样保留最先出现的那条。
怎么只统计重复数量、不删数据?
用 COUNTIF 函数即可。在辅助列写 =COUNTIF(A:A, A2),返回这个值在 A 列出现的总次数;值大于 1 说明有重复。这样只是标注,不改动原数据,想删的时候筛选再手动删。超级表也支持「标记重复」模式,先看清楚再决定删不删。