首页 > 文章 > Excel表格 > Excel去重勾了“忽略空格”,下载编号为什么还带空格?

Excel去重勾了“忽略空格”,下载编号为什么还带空格?

Excel按列去重

点击使用相关工具

去使用

勾选“忽略文本两端空格”,重复行少了,下载文件里的编号却还是带空格。这不一定是处理失败。Excel按列去重把这项设置用于判断两行是否属于同一组,留下的那一行仍保留原来的值。“忽略文本大小写”也是如此:它允许某些编号归为一组,不会把输出统一成小写。

这两个选项回答的是“比较时要不要计较差异”。如果你的交付要求是“编号必须没有空格、字母必须大写”,那还需要另做清洗。先把这两种要求分清,才能解释行数变了、编号外观却没变的结果。

把6条编号放在一起,单独试每个选项

建立一个标准.xlsx文件,工作表命名为Data,第一行填“编号、金额”。编号列前五个值保存为文本,最后一个1保存为数值;金额均保存为数值。第一条Ab01前后各有一个普通半角空格,第四条A和B之间有一个空格。下面用引号标出文本边界,引号本身不录入单元格。

编号        金额
" Ab01 "    10
"Ab01"      11
"ab01"      12
"A B01"     13
"001"       14
数值1       15

打开工具,选择这一个文件,确认工作表是Data、表头行为1。在“判重列”中只勾编号,不勾金额;“保留规则”选择保留首条。先不勾两个忽略选项,点击“开始处理”。原始6行、保留6行、重复0行,说明默认会区分这六个键。

勾选方式保留重复被排除的金额
两项都不勾6行0行无
只忽略两端空格5行1行11
只忽略大小写5行1行12
两项都勾4行2行11、12

每次改选项后都重新点击“开始处理”,再核对统计,不沿用上一次下载文件。只忽略两端空格时,前两条编号归到同一组,留下金额10;小写ab01仍是另一组。只忽略大小写时,Ab01与ab01合并,留下金额11;首条两端的空格仍造成区别。两项同时勾选,前三条才一起归组,留下最先出现的金额10。

真正要检查的是下载文件中的首条原值

在两项都勾选的结果中,下载kept.xlsx,Data工作表应有四条数据,顺序为:带两端空格的Ab01与金额10、A B01与金额13、文本001与金额14、数值1与金额15。第一条不会变成ab01,也不会自动删掉两端空格。本例在浏览器中运行后,对下载的xlsx逐项核对过,文本和数值类型也分别保留。

再下载duplicates.xlsx,应看到Ab01与金额11、ab01与金额12。它们虽然在当前判重口径下重复,金额却不同。是否允许舍弃这两个金额,仍要由数据的业务含义决定;“重复2行”并不等于“两行完全一样”。若把金额也勾为判重列,这六行金额各不相同,结果就会全部保留。

工具留下整行,并不会用首条的金额配上第二条的整洁编号。要换成末条,输出原值也会跟着换;如何决定留下哪条,可另看保留首条、末条与记录新旧的区别。

确实要清洗编号时,留一列原始值

先确认两端空格和大小写在你的编号规则中是否有意义。若允许清理,在原工作簿副本中新增清洗列,保留原编号,按已确认的规则去掉两端空格、统一大小写,再检查清洗后是否产生新的重复组。需要导出的编号也整齐一致时,去重应以这列为键,并交付清洗列;仅勾工具的忽略选项达不到这个目的。

不要顺手删除所有内部空格。本例的A B01仍是独立编号;去掉中间空格会把它也变成AB01,改变取舍范围。对于看不见的字符、全角半角、短横线等差异,这两个选项不负责全面统一,发现结果与预期不符时,应回到原表检查具体字符。

两个选项都勾了,001为什么仍和1分开?

它们只调整文本比较,不把文本转换成数值。本例文本001与数值1仍各自保留。若编号显示相同却匹配不上,可看前导零、显示格式和单元格类型的核对方法,不要用删除空格代替编号类型核查。

下载结果能保留原工作簿的全部内容吗?

不能。本文所说的原值是被保留行读取到的数据值,不是原工作簿的完整复制。工具只处理.xlsx,公式只读取已保存的缓存结果,缺少缓存或有错误单元格会报错;不承诺保留原公式、样式和图表,也不支持宏、外部链接或加密工作簿。文件在浏览器本地处理,关闭页面前自行保存原件和两份结果。

立即使用Excel按列去重