Excel去重保留首条还是末条?金额10和11应该留下谁
Excel按列去重
点击使用相关工具
编号相同,金额却不同,这两行是不是重复记录?如果只是同一订单被重复导出,可以保留其中一条;如果是两笔不同的交易,即使编号相同,也可能都应该留下。去重按钮无法替你决定这个业务条件。
先用10和11看清“保留”究竟是什么意思
打开Excel按列去重,点击“载入示例”。表头为编号、金额、分组、长编号,数据共3行:
| 输入顺序 | 编号 | 金额 | 分组 |
|---|---|---|---|
| 第1条 | 001 | 10 | A |
| 第2条 | 001 | 11 | A |
| 第3条 | 002 | 20 | B |
勾选“编号”和“分组”,不选金额与长编号,保留规则选“保留首条”。点击“开始处理”,提示原始3行、保留2行、重复1行。预览中001+A留下金额10,002+B留下20。下载kept.xlsx可得到保留记录,duplicates.xlsx则保存被排除的那条001+A、金额11。
参数不变,只把规则切到“保留末条”再处理,行数还是3、2、1,但001+A变成金额11,被排除的是金额10。这个工具取舍的是整行数据,不是把两行分别挑选几个字段组成新记录。
末条只看所在位置,不看日期新旧
示例里11排在10后面,所以末条留下11。它不是因为11更大而被选中,也不是因为它代表更新版本。工具没有自动按更新时间排序的步骤;“最后一条”指工作表输入顺序中的最后一次出现。
如果你希望保留最新记录,先在原表确认可用的更新时间,按从旧到新排列整张数据表,再选择保留末条。只排序日期列、没有带着整行一起移动,会把编号、金额和时间配错。日期相同还要规定如何取舍;不能把最后一次导出的文件顺序直接当作记录更新时间。
末条规则也不会把整张结果倒序。它先确定每组留下哪一行,再按这些行在输入中的相对顺序输出。重复记录文件保留被排除行的相对顺序,方便复查。
多勾一列,结果就可能从2行变成3行
在同一示例中继续勾选“金额”,判重条件变成编号、分组、金额三列全部相同。001+A+10和001+A+11不再相同,结果会保留3行、重复0行。长编号也各不相同,若把所有列都选上,同样无法把这两条判为重复。
因此,单列或多列没有谁天然更准确。订单号在全表唯一时,可以按订单号;同一个订单号在不同分店重复使用时,可能要按订单号加分店。若两行只是部分字段相同,是否允许删除整行,要由这张表的业务定义决定。
看起来相同的编号,为什么没有去重?
默认会区分文本两端空格与大小写,文本类型和数值类型也分开比较。文本001不会自动变成数字1;文本1也不会与数值1混为同一键。工具保留已经存在的文本前导零,但无法恢复源文件存成数值后丢失的零。
“忽略文本两端空格”和“忽略文本大小写”仅作用于判重键。例如文本“ A ”和“a”在两个选项都勾上时可视为同一键,留下的整行仍使用原来的文本内容。这些选项不会清理文本中间的空格,不会统一全角半角,也不把数字文本转换成数值。空单元格按null比较,空字符串单独比较,空编号也可能组成重复组,处理前要检查它们是否其实属于不同对象。
交付时同时保存两份结果
先核对原始行数等于保留行数加重复行数,示例为3 = 2 + 1;再检查被排除的记录是否包含应该留下的金额、日期或备注。只有kept.xlsx而没有duplicates.xlsx,后续很难解释某一行为什么消失。保留原工作簿和两份结果,比把预览当成最终交付可靠。
多文件数据应先使用Excel多文件合并接成一张表,再对单个工作簿去重;合并顺序会影响首条、末条的含义。如果你只想知道两份版本改了什么而不删除记录,改用Excel两表比对。
当前去重只处理.xlsx,公式只取已有缓存而不重算,样式、图表和原公式不承诺保留,宏、外部链接和加密工作簿不支持。表头行要正确,单表不超过5万数据行、200列及20万单元格。数据在浏览器本地处理;下载前请逐项复核,关闭页面后处理结果不会自动保留。