我问答网
有问必答

Excel技巧:删除重复值,你确定真的删干净了?

一开始,我也以为这功能简单得像一加一

说实话,Excel里“删除重复值”这个按钮,我少说也点过几百次了吧?但每次点下去,心里还是会咯噔一下。你可能会觉得——就删个重复嘛,至于么。至于!因为踩过的坑,太惨痛了。
Excel删除重复值对话框界面
Excel删除重复值对话框界面
我记得刚毕业那会儿,给主管交个销售明细表。她扫一眼,轻飘飘一句:“小张,重复的去掉。” 我心想,这还不简单?选中A列,数据工具里点“删除重复值”,搞定。结果第二天,主管举着打印出来的纸问我:“怎么客户‘华为’只剩三条记录了?他们明明每个月都有采购。” 我当场石化。 原来,我只勾选了“客户名称”一列,Excel就把其他字段全忽略了,直接整行删除。 如果“华为”出现了五次,它只保留第一次,后面四条全给你干掉了——不管月份、产品、金额完全不一样。这就是第一个大坑:你选的列,决定了“重复”的定义。 一定要把所有相关列都勾上啊!

哪些列该勾?这其实是个灵魂拷问

后来我学乖了,每次删除前,必做两步: ✅ 先看数据有没有唯一标识符,比如订单号、流水号。如果有,只勾那一列就够了,因为其他列理论上都是“附属信息”,重复的订单号才叫真重复。 ✅ 如果没唯一ID,那就得把所有你想用来判断“两条记录算不算同一条”的列都勾上。比如我要看“同一天、同一个客户、买了同一个产品”的记录,那就把日期、客户名、产品名三列全勾。 这里有个魔鬼细节。有一次同事拿来一张表,希望去掉重复的项目名称,但保留一条。她勾了“项目名称”和“负责人”,以为这样就能保留有负责人的那条。结果呢?Excel会按勾选的列组合来判断重复,如果两条记录项目名称相同、负责人不同,那它俩不算重复,全部留下。她想的是“项目名称唯一,保留负责人不为空的那条”,Excel可不懂你这心思。 所以——别指望它的智能,它只会机械匹配。真想实现那种“条件去重”,得用排序加辅助列,或者干脆上Power Query。
Excel高级筛选条件区域设置
Excel高级筛选条件区域设置
顺便说一嘴,如果你只是想把重复数据标记出来,而不是删掉,用条件格式里的“突出显示重复值”就特方便。它只会高亮,不伤数据,我特别喜欢在给老板看之前这么干,免得他误删什么重要的。

另一个隐藏Boss:看不见的空格和不可见字符

另一个隐藏Boss:看不见的空格和不可见字符
另一个隐藏Boss:看不见的空格和不可见字符
你以为勾对了列就万事大吉?太天真。 有一次我死活去不掉重复,明明看着两条“北京市”一模一样,点删除后它告诉你“未找到重复值”。WTF❓后来才发现,其中一条“北京市”后面跟了个换行符。这东西肉眼看不见,但Excel认为“北京市”和“北京市 ”就是不同的。同样捣乱的还有首尾空格、全角半角数字、从网页上扒下来的那些神秘空白字符。 我的处理流程一般是: 1. 先 Ctrl+A 选中数据区域 2. 用查找替换,把“ ”(空格)替换为空(风险自担,有些正常空格不能删,但90%情况下没事) 3. 用=CLEAN()函数清理不可打印字符(换行符之类) 4. 再用=TRIM()清除多余空格 5. 最后粘贴成值,再做去重 这一套下来,十有八九能治好。还有一成可能是从数据库导出的字段里有隐藏制表符,那就得祭出=SUBSTITUTE(A1,CHAR(9),””)了。你看,一个去重,硬生生逼成了侦探。

去重后想恢复?呵呵,没有后悔药

这可能是最扎心的部分。删除重复值是不可逆的。 不像筛选,你可以随时取消。一旦你点了确定,再Ctrl+Z,有时候是撤销不了的,尤其如果中间保存过。 我现在的习惯:动手前先复制工作表,在副本上搞。或者至少先另存为一下。这真不是怂,是血的教训。有一次我把整个价格表去重,结果把历史上有效的价格区间全删了,因为日期不同但其他列相同的全没了。后来我花了整整一个下午从邮件附件里扒拉备份…… 所以,💡强烈建议:去重前,先按某个字段排序,确保保留下来的那条是你想要的。 比如按日期降序排,再去重,这样留下的就是最新的记录。默认Excel保留第一次出现的行,而排序能决定哪条是“第一次”。

超大表格的去重:卡死你算轻的

现在我经常处理几十万行数据,常规的“删除重复值”点下去,整个Excel可能直接没响应。这时候就得用更巧的办法。 第一个方案:用UNIQUE函数(如果你是Microsoft 365)。这个函数直接返回去重后的数组,不会破坏原数据,而且效率奇高。比如=UNIQUE(A1:C10000),瞬间出结果。 第二个方案:数据透视表。把你想去重的字段拖到行标签,透视表本身就会自动去重。再用GETPIVOTDATA或其他方式引用结果,非常爽。 第三个方案:Power Query。只要点几下,删除重复项,然后加载到工作表。Power Query处理几百万行都轻松,而且步骤可以重复用,下次刷新就行。 对了,说到透视表,去重计数也是个常见需求。数据透视表里默认的计数是包括重复项的,要想统计不重复的个数,一定记得勾选“将此数据添加到数据模型”,然后值字段设置里选“非重复计数”。这个功能2013版之后才有,但很多人不知道。
数据透视表非重复计数选项
数据透视表非重复计数选项
所以啊,一个去重,能扯出这么多门道。其实Excel里很多小功能都是这样,看着简单,细琢磨全是坑。不过话说回来,踩坑越多,记得越牢。现在谁要是让我去重,我眼睛都不眨——先把表另存一份,哈哈。 最后再啰嗦一句,如果数据里有公式,去重前先粘贴成值,不然公式引用一变,结果可能让你怀疑人生。好了,这篇就聊到这儿,下次有人问你怎么去重,直接把这条甩给他吧。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:Excel技巧:删除重复值,你确定真的删干净了?
文章链接:https://www.wowenda.cn/a/51825.html