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,公式只读取已保存的缓存结果,缺少缓存或有错误单元格会报错;不承诺保留原公式、样式和图表,也不支持宏、外部链接或加密工作簿。文件在浏览器本地处理,关闭页面前自行保存原件和两份结果。