夜雨聆风学习资料网

ARTICLE · 1209079

电脑技术|Excel快速去除重复值,10000行数据1…

电脑技术|Excel快速去除重复值,10000行数据1…

很多人一听说要清理上万行表格里的重复数据,第一反应就是一行行肉眼看、手动删,或者去网上搜「Excel去重神器」装一堆来路不明的插件。其实你电脑里的Excel本身就藏着两个专门干这个活的功能,微软官方支持文档里把它们讲得很清楚:一个是「删除重复项」,一个是「条件格式·重复值」。今天我就带你从零走一遍,让你下次面对一两万行客户名单、订单流水、库存明细时,不用求人也能在几秒钟内把脏数据收拾干净。

先说一个容易被忽略的前提。Excel单个工作表最多容纳一百零四万八千五百七十六行,这是微软官方给出的上限,所以你手上的「一万行」对它来说其实是小意思,所谓「一秒搞定」不是夸张,是它本来就快。但快归快,乱用会删错东西,所以第一步永远是先备份。

第一步,复制一份原始数据到新工作表。微软官方支持文档在介绍「删除重复项」功能时专门提醒:用这个功能删掉的行是永久删除的,删之前最好把原始数据移动或复制到另一个工作表,免得误操作丢了信息。很多人图省事直接在原表上点,等发现把该留的价格、备注一起删了,后悔都来不及。所以动手前,右键工作表标签、移动或复制、勾选「建立副本」,三十秒的事,能救你一整天的返工。

第二步,确定你要按哪些列判断「重复」。点「数据」选项卡,找到「数据工具」组里的「删除重复项」,弹窗里会列出所有列。这里有个关键分支:如果你的表是「整行完全相同才算重复」,那就全选;如果你只想按某一列(比如手机号、订单号)去重,而同一手机号对应不同价格时要保留,那就只勾选那一列,把其他列的勾取消掉。微软的示例里就提到,当某一列有需要保留的价格信息时,就要在删除重复项对话框里取消勾选那一列。这一步想清楚,才不会出现「重复是删了,但该留的数据也跟着没了」的惨案。

第三步,点确定,Excel会弹出统计框,告诉你删除了多少重复值、保留了多少不重复值。这里藏着一个反常识的细节:微软官方说明里写得很明白,删除后给出的重复值和不重复值计数,可能会把空单元格、纯空格也算进去。也就是说,如果你的表里有几行是空白的,它们会被当成「重复值」一起干掉。所以去重前先按Ctrl加G定位空值,把真正的空行清掉,统计数字才靠谱。

第四步,如果你不想直接删,只想先把重复项「标出来」人工复核怎么办?用条件格式。选中要检查的区域,点「开始」→「条件格式」→「突出显示单元格规则」→「重复值」,Excel会用颜色把重复的单元格标出来,你再决定删不删。这个功能安全、可逆,适合第一次处理这张表、还不确定哪些该留的人。微软官方还提到,透视表的值区域里Excel没法高亮重复项,别在这上面白费劲。

我以前在一家公司做会员运营,就真撞上过「重复值」惹的祸:系统导出的积分明细里,同一个会员因为手机号前后差一个空格,被算成了两个人,月底发了双份积分。后来我才明白,删除重复项对大小写不敏感,也会忽略首尾空格,所以「 北京 」和「北京」会被当成同一个——这既是它的方便之处,也是它的坑:如果你的数据里本来就有意义的空格(比如某些编码),它会一并忽略。所以去重前先用TRIM函数清掉多余空格,再判断,才稳妥。

如果你经常要处理同一张表,还有一个进阶办法:用Power Query做可复用的去重。点「数据」→「从表格区域」,进去后选要去的列,右键「删除重复项」,关闭并上载。好处是下次数据更新了,只要刷新一下,去重规则自动重跑,不用每次重新点。这对每个月都要导一次会员表、订单表的人来说,是真正省时间的本事。比起装插件、求人,把这套流程握在自己手里,才是职场里别人抢不走的竞争力。

如果你用的是较新版本的Excel,还有一个「只提取不删除」的省心法子:UNIQUE函数。微软官方文档把UNIQUE列为Office 365专属的动态数组函数,语法很简单,比如=UNIQUE(A2:A10001),它会把这一万行里的不重复值自动「溢」到旁边一列,原数据一个不动。这对你只想看看到底有哪些不重复的客户、不想破坏原表的人特别友好。配合COUNTA还能顺手算出不重复值的总数,比盯着删除重复项的弹窗数字更可控。

还有个场景是「我要自己判断留哪一行」。这时候删除重复项太武断,因为它永远保留第一次出现的那行、删掉后面的。如果你的数据里「最近一次下单」那行才该留,就得先用排序把最新日期排到上面,再删重;或者用COUNTIF公式在辅助列标重:=COUNTIF($A$2:A2,A2),结果是1的就是要留的首行、大于1的就是重复。微软官方支持文档在介绍COUNTIF时也把它作为按条件统计、标记重复的基础函数。这一招比纯靠按钮灵活,适合数据有「时间先后」含义的表。

最后说三个高频翻车点。其一,删除重复项是「大小写不敏感」且「忽略首尾空格」的,所以「Apple」和「apple」会被当成同一个;如果大小写本身有意义(比如产品编码),要先统一大小写再判断。其二,它保留的是重复组里的第一行,意味着你想留「金额最大」或「日期最新」的那条,必须先把那一条排到组首。其三,去重后如果想知道哪些行被删了,可以提前在表旁边加一列序号,删完用VLOOKUP回查,就能定位消失的行。把这几条记牢,一万行数据真正能做到稳准快地「一秒厘清」。

相关学习资料