excel2006特殊字符不显示(说说Excel不可见字符的那些事)

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(1)

今天小伙伴问了个问题

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(2)

看上去啥也没有,为什么黏贴到记事本上前面那么多空白呢?

典型的不可见字符惹出来的麻烦,这个往往是公司软件导出数据造成的

我们今天就来细说说不可见字符的那些事

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(3)

拿上面的例子说明

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(4)

大部分不可见字符,这一步就能看出原型,上图是前面不可见

下面图为后面不可见字符

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(5)

鼠标放过去,会看到后面也有一段不可见字符

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(6)

这里介绍一个函数CODE函数,它是返回一个文本字符串在本机字符集代码

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(7)

这里我们拿第一个字符出来,看下他的编码是多少,显示是9(是TAB空格,不是真正的空格,真正的空格编码是32)

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(8)

这里再介绍一个公式CLEAN函数,删除文本中不可以打印的字符

这里用CLEAN函数清理之后,复制-黏贴为数值(它不是万能的后面会介绍)

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(9)

这样处理后,这个不可见字符就删除了

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(10)

• 我们经常遇到的,这个人录入的时候,手误了,前面或者后面加了空格就是字符集编码是32的那个

为了清除头和尾的空格,而中间的正常空格,我们是不处理的,CLEAN函数就处理不了,这里介绍一个函数:

TRIM(单元格地址),专门处理上面这种情况的函数

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(11)

这里注意了,新手记账常见,中间有个空格,两边记录的时候不注意就弄多了空格了

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(12)

这样处理,复制—黏贴为数值,就搞定了

• 肉眼看的出来区别,但是CLEAN函数处理不了

前面我就说了CLEAN函数不是万能的,经常会遇到,明明肉眼可以看到区别,但是就是清洗不了

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(13)

这个例子来说,“我”字前面是有一个不可见字符的

但是,不好意思,CLEAN就是处理不了,怎么办?

这里介绍几个方法

1,鼠标选中这个位置,替换掉

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(14)

鼠标选中,CTRL C复制

然后CTRL H弹出替换菜单

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(15)

复制进去,替换就好了

这种方法,大部分都可以处理了

2,公式方法

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(16)

这里用的SUBSTITUTE函数,语法如下:

SUBSTITUTE(文本字符串,要替换的字符串,替换成的字符串,[可选参数表示如果重复替换第几个,默认是全部替换])

这里还是用的复制大法,直接黏贴进去函数里第二参数

还可以和其他函数配合使用

这个例子,我们还是要分析,它到底是谁?

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(17)

可以看出是编号127的字符

上面的函数,我们可以换成这样

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(18)

又来新知识了,CHAR函数,这里正好和CODE函数相反,他是根据编码得到ASCII字符

这个方法是比较常用解决下面问题,看不出区别的时候,最快的解决方法

• 肉眼看不出区别了,选也选不中了,但是就不同

这里介绍下LEN函数,返回的是第一个字符串的长度,看B3知道正常应该是6个字符,但是却显示7个

先剧透,最前面有一个字符,所以我们用LEN函数判断字符串长度的时候,发现B3单元格的字符多了一位

但是,你是看不出区别的,也选不中,然后可怕的事情是下面的

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(19)

我用上面的方法,找到它的code值,SUBSTITUTE函数CHAR(63)处理之后,依然还在

是不是有点懵,又到了介绍新知识的时候了!

我们上面说的函数CODE CHAR函数都是处理ASCII编码的,ASCII编码是有极限的,它设计出来是处理英文环境下的字符的,但是世界上语言涉及字符非常多,尤其中文更是如此,必须有一套新的编码方案才能解决,这就发展出了一套更大更全适合多国语言的编码方案,它就是UNICODE,这里字符其实UNICODE编码里的字符,UNICODE包含ASCII字符,但是比它多很多

篇幅有限,这里就不展开来讲这两种编码方案具体原理和差别

又要介绍几个新函数了,对应的是

UNICODE函数和CODE函数一样使用

UNICHAR函数和CHAR函数一样使用

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(20)

所以这里,换2个对应函数来处理就解决了

这里看出来实际那个不可见字符是UNICODE编码里的65279字符

CODE识别不了的时候,很多字符都会返回63,实际上其实不是,如果遇到这个问题,就用更全面的函数UNICODE函数来识别

excel2006特殊字符不显示(说说Excel不可见字符的那些事)(21)

可能小伙伴们还晕,看总结,晕的回头再来一遍

  • 如果状态栏能看出来的,试试替换功能和函数方法
  • 如果状态栏看不出来的,要先找出它的字符编码是多少,然后用替换函数配合CHAR函数处理
  • 如果遇到UNICODE编码不可见字符,用UNICODE函数和UNICHAR函数处理

喜欢就关注我吧,每天分享职场知识,办公技巧!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页