Excel数据清洗之六 去除不可见字符

造成分类不统一的原因还有一种,叫做“不可见字符”。

先看下面的例子。假设我们数据如下:

表中所有数据都是同一个ID,如果我们用数据透视表汇总它们的数量,我们期望会得到一个这样的结果,

但是,实际上,我们会得到这么一个结果:

显然,Excel并不认为这三个ID是相同的。

分析

我们来看一下源数据的三个ID。先后用函数LEN来计算一下分别的长度:

三个看上去“一模一样”的ID,长度却各不相同。

首先看第三行的那个ID(B3),很明显,有9个字符,所有公式LEN(B3)的结果是9,说明这是一个正常的ID(没有多余的字符之类的)。

而第四行的ID(B4),却有12个字符。多出来的是什么呢?一般我们总是会怀疑这些多出来的字符是空格。我们可以通过下面的方法来确认一下:

选中B4,鼠标点击编辑栏,在编辑栏中按Ctrl+Shift+⬇(下箭头),

可以看到,后面多出来的部分(箭头所指)就是空格。

空格很简单,我们在上一讲已经讲过,用替换或者TRIM函数就可以处理了。

再来看第五行的ID(B5),用同样的方法,看一看编辑栏中能否发现空格,

可以看到,这次编辑栏中所选中的文本就是ID的那9个字符,并没有多余的字符,当然也就说明没有空格。

这种在计算长度时占据了1个字符,但是在编辑栏中去不能发现的字符,就叫做“不可见字符”,又叫“不可打印字符”。

不可见字符的来源

产生不可见字符的来源主要是不同系统的数据源转换时带来的。文本文件中的数据,网页上的数据,或者数据库系统的数据转换到Excel中时,往往很可能就会产生这种不可见字符

如何清除不可见字符

一般来说,清除不可见字符要用函数:CLEAN

使用很简单:

在这个简单的例子中,我们可以使用TRIM和CLEAN这两个函数,将多余的空格和不可见字符一起处理掉,

想用CLEAN清除不可见字符,然后再用TRIM清除多余空格,最后得到的就是干净的数据了。讲这一列(处理列,D3:D5)数据复制数值到B3:B5,这一步数据清洗工作就完成了。

顺便说一下,上一讲我们讲到多余的回车(换行)时,讲到用“替换”清除多余的回车。实际上这个回车也属于不可见字符,可以用CLEAN清除掉。

一个特殊的“空格”

有一种特殊的空格,可以在编辑框中选中它,

但是这个空格不能用TRIM清除掉,也不能用CLEAN清除掉。

如何制造这个特殊的“空格”

在单元格中输入公式:=“CA1001101”&UNICHAR(160),然后将这个单元格复制,粘贴数值到其他单元格,即可得到这个结果。

这个空格是UNICODE编码为160的字符,名字叫做“不间断空格字符”,简称nbsp,在网页中经常使用。

清除这个字符的最简单方法就是在编辑栏中选择这个字符,然后在替换对话框中,将它替换为空,

也可以使用公式:

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

其中函数SUBSTITUTE的作用是在一个文本中将一个字符串替换为新的字符串。

这个公式的意思就是将B2中的文本中的那个“空格”(UNICHAR(160))替换为空。

总结以及其他

看上去,对于不可见字符,CLEAN确实是我们能够依靠的“关键”函数了。确实是这样的。很多(在我们经常遇到的不可见字符的场景中,可以说是大多数了)不可见字符都可以用CLEAN清除。但是仍然有不少的场景中,我们会遇到那些用CLEAN清除不掉的情况。而那些用CLEAN清除不掉的字符,实际上是非常多的(尽管出现的概率不大)。

如果你遇到了这种用CLEAN清除不掉的情况,可以通过找到这个字符的UNICODE编码,然后通过SUBSTITUTE来替换掉。幸运的是,这些特殊字符往往在一个字符串的开头(或者结尾),

例如,假设B2单元格有一个ID,我们发现它含有不可见字符,用LEN计算长度,也确认了这一点,

我们可以首先通过下面的公式取出第一个字符,看看这个特殊字符是否在开头,

=LEFT(B2)

很显然,如果这个公式返回“C”,就说明开头没有特殊字符,那么这个特殊字符就在后面。如果这个公式返回一个看上去什么也没有的“空单元格”,说明第一个字符就是我们要找的特殊字符。

然后可以使用公式:

=UNICODE(LEFT(B2))

会得到一个类似于下面的数字:

这个数字不一定是几位数,因为这样的字符有非常多。

然后就可以使用公式了

=SUBSTITUTE(B2,UNICHAR(8204),"")

当然,如果你的数据比较复杂,这个任务可能很艰巨,你可以关注下面的公众号:ExcelEasy寻找更多方法和技巧,或者使用我们的数据清洗服务,让我们来帮助你完成这个工作。

(0)

相关推荐

  • 厉害了,这4种Excel序号技巧,80%的人不知道!

    本文作者:农夫 本文审核:小爽 本文编辑:小胖.竺兰 各位小伙伴,大家好,我是农夫,专治疑难杂「数」的农夫~ 日常工作中,我们经常会遇到各种,给数据标序号的问题. 比如: 年底绩效的排名序号 竞聘得分 ...

  • 脑洞大开,Excel用99+空格来提取单元格数据,你用过吗?

    [温馨提示]亲爱的朋友,阅读之前请您点击[关注],您的支持将是我最大的动力! 哈喽大家好!我是[Excel与财务]小编阿钟老师,一名70后财务男,今天分享的也是一个有意思的教程. 在Excel中,从单 ...

  • Excel数据清洗之五 去除多余的字符

    今天介绍数据清洗需要处理的第二类问题,分类要一致. 我们先看分类不一致的结果, 上图中,很明显我们看到一个编号为"CA1001101"的客户,但是分别被归类到不同的客户中. 造成这 ...

  • 【在职场中学Excel】FIND函数查找的字符重复,如何对条件进行判断?

    Excel情报局 Excel职场联盟 生产挖掘分享Excel基础技能 Excel爱好者大本营 用1%的Excel基础搞定99%的职场问题 做一个超级实用的Excel公众号 Excel是门手艺玩转需要勇 ...

  • Excel数据清洗实例智能填充应用

    Excel数据清洗实例智能填充应用

  • 【UN】Excel数据清洗之一 基础

    什么是数据清洗 数据清洗是我们在进行任何数据汇总分析之前的必备工作. 很多人已经认识到了,在我们拿到的原始数据中有大量的错误数据和不规范数据.也有很多人没有意识到这个问题.如果我们直接拿这样的原始数据 ...

  • Excel数据清洗之二 纠正错误的表格格式

    不规范的源数据中有一类是格式错误,我们清洗数据的第一步是纠正这些错误的格式. 空行或空列 其中一种非常常见的类型就是数据之间有空行或者空列. 这份数据中,橙色的竖线表示空列,蓝色的横线表示空行. 这份 ...

  • 在Excel中截取字段中的字符,我有3种方法供参考

    在Excel中截取字段中的字符,我有3种方法供参考.在平时的工作中,我们经常会遇到要截取某一个字段中的数字或者是文字.数据量小就无所谓方法,但数据量多的话,方法必须有讲究,同样的工作量,虽然最终结果相 ...

  • Excel数据清洗之三 横表转竖表(逆透视)

    前面我们介绍了对格式错误进行数据清洗的步骤,得到了结果--一个横表: 实际上,有可能我们一开始拿到的就是这样的"横表" 横表的问题我们可以通过下面的数据透视来为大家展示一下: 在这 ...

  • Excel数据清洗之四 清除错误值

    错误值在Excel中非常常见.我们在以前的文章中给大家做过介绍(参见#Div/0! Excel中的那些错误值们!),这些错误值都是用公式计算时产生的,大家都司空见惯了. 正因为大家都习以为常了,所以错 ...

  • Excel数据清洗之七 发现和修改错误的日期

    在数据分析时,我们经常需要将日期数据作为一个分类,例如,在下面的透视表中,我们就将日期作为一个分类,计算每个月的销售额, Excel的数据透视表提供了非常方便的日期分组的能力,可以根据需要随时统计年/ ...