点击上传或拖入表格文件
XLSX、XLS、ODS 或 CSV — 在浏览器中读取,绝不上传关于删除重复行
这项工作的文本版比较的是整行,对于一份邮箱地址列表来说,那正是对的做法。而表格需要的是另一种东西。
在真实的表格里,重复几乎从不是由整行决定的。同一张订单导出两次,即便其中一次的时间戳更晚,它仍是同一张订单;同一位客户的两条记录,即便中间地址被整理过,那仍是同一位客户。让一行成为重复的是一两列,而不是全部列。
所以这里的关键列是第一个控件,而不是藏起来的设置。勾选那些决定「相同」含义的列,其余的都允许不同。
真正要紧的几个选择
- 哪些列——一开始是全部。把允许变动的列取消勾选,比如时间戳或备注字段
- 保留第一条还是最后一条——当其他列不同时,这决定哪个版本存活。对于只追加的导出,通常应保留最后一条,因为最新的那行才是修正过的
- 忽略多余空格——默认开启。" Acme 公司" 和 "Acme 公司" 对所有人来说都是同一家公司,只有字符串比较不这么认为
- 区分大小写——默认关闭,所以 ACME 和 Acme 被当作同一个
勾选改为显示被删除的行,就能看清究竟会丢掉什么。没有任何东西被悄悄扔掉:数量始终显示在屏幕上,被删除的行也只有一次点击的距离。
使用方法
- 粘贴你的行,或上传一个表格文件
- 把重复之间允许不同的列取消勾选
- 选择存活的是第一条还是最后一条
- 核对数量;如果数字出乎意料,就看一眼被删除的行
- 下载为CSV或Excel,或者直接复制回去
看起来不像重复的重复
当你以为某些行会被删掉、它们却挺过了去重,这通常不是比对出了错。而是两个字符串在屏幕上一模一样,在内存里并不相同。
常见的元凶都是看不见的。从网页复制来的文本经常带着不换行空格而不是普通空格——宽度相同,字符不同。从老系统导出的CSV,某一列的每个值后面可能都跟着一个尾随空格。而在Excel里以撇号开头输入的数字是文本而不是数值,所以 1000 和 1000 真的可能不同。
忽略多余空格处理了其中常见的那一半:它修掉首尾、把连续空白合并成一个,并把不换行空格当作空格。它刻意不做的是去掉标点或统一变音符号,因为 Muller 和 Müller 是两个不同的人的情形足够多,替你猜测会比交给你判断更糟。
如果两行仍然对不上,把它们都粘进纯文本编辑器,看看值的末尾。差异几乎总是在那里。
人们用它来做什么
- 清理一份由多次导出拼起来的邮件列表
- 在重复导入之后,去掉重复的订单或交易
- 合并同一个账户被录入两次的客户表
- 整理有人提交了不止一次的问卷导出
- 在做任何决定之前,先弄清到底有多少重复
- 为报表拿到一个真实的去重计数
值得一提
- 可在 Windows、macOS、Linux、ChromeOS 以及手机和平板上使用——它接收的是粘贴的文本或一个文件,而不是文件夹
- 不上传任何内容。读取和去重都在页面内完成
- 行的顺序会被保留。留下来的行按进来的顺序返回,不会被排序
- 如果把所有列都取消勾选,就会退回到比较整行,这是对「没有选择任何列」最稳妥的理解
- 数字按写出来的样子比较。如果一张表里是 1000,另一张里是文本形式的 1,000,它们就是不同的——若你追查的正是这种差别,请用比较两个Excel文件
- 预览显示前 200 行;下载的文件始终包含全部行
相关工具
- 删除重复行 — 面向纯文本列表的同一件事
- 比较两个Excel文件 — 看清有什么不同,而不是把它删掉
- 分组汇总 — 把重复汇总求和,而不是删除
- 比较两个列表 — 在一个列表里有、另一个里没有的内容