清理数据的十大方法

拼写错误的单词、难以去除的尾随空格、不需要的前缀、不正确的大小写和非打印字符给人一种不好的第一印象。执行排序、筛选或搜索操作时,这些字符还可能导致意外结果。例如,在外部数据源中,用户可能会无意添加额外的空格字符,从而导致打字错误,或者从外部源导入的文本数据可能包含嵌入在文本中的非打印字符。由于这些字符不容易引起注意,因此意外结果可能很难理解。

导致数据混乱的因素可能还不止这些。请准备好,通过 Microsoft Excel 对工作表进行大扫除的时候到了。

删除文本中的空格和非打印字符

一般常规是利用TRIM与CLEAN函数进行数据清理,但有时它们处理结果也不尽如意,如图:

图01
图02

从上面的结果来看,前三行都没有清理干净。而后我们又使用复制粘贴到替换的方法,同样还是未能清理干净。为了探明原因,我们接着使用Unicode函数来看下姓名列最后一字符串的Unicode值,发现为160。

图03

至此终于明白之前TRIM与CLEAN函数清理不干净的主要原因了。

CLEAN函数只能清除非打印字符(unicode字符集值在0到31位)。即从文本中删除 7 位 ASCII 代码中的前 32 个非打印字符(值 0 到 31)。TRIM函数从文本中删除 7 位 ASCII 空格字符(值 32)。

有时文本值不仅仅包含前导空格、尾随空格,甚至会有多个嵌入空格字符(Unicode 字符集值 32 和 160),或非打印字符(Unicode 字符集值 0 到 31、127、129、141、143、144 和 157)。

若要删除掉所有不需要的字符,可组合使用 TRIM、CLEAN 和 SUBSTITUTE 函数。

SUBSTITUTE 函数替换方法

使用SUBSTITUTE函数,将值较高的Unicode字符(值 127、129、141、143、144、157 和 160)替换为 7 位ASCII字符(TRIM和CLEAN函数专门用于此类字符)。如:

=SUBSTITUTE(A2,UNICHAR(160),"")

再用TRIM和CLEAN函数正常清理就可以了,完整公式如:

=CLEAN(TRIM(SUBSTITUTE(A2,UNICHAR(160),"")))
图04

参考:清理数据的十大方法

作者: Hugh

Welcome to Wan's world~