前言
周末在开车的路上,同事电话问我一个EXCEL问题,今天拿出来聊一聊!
问:一列数据由卡号,姓名,基地组合,中间有空格,想按空格进行分列,就是不成功,是什么原因?
我简单询问了一下,这些表格是不是从其它系统导出来的,说是的,我说,你看到的空格可能并不是真的空格,所以按空格不能分列.
那怎么办呢,我说:我虽然不知道它是什么,但是也不需要知道,你只要把这个看一起来像空格的字符,复制一下,直接粘贴到分隔符中的其他字符里,就可以了.
果然成功!
多问一个为什么
问题虽然解决了,但老崔还是抱着问题就是财富的态度,继续深挖一下,这个像空格的字符到底是什么呢?
我们来分析一下:
我们在B1单元格输入公式
=FIND(" ",A1,1)
注意:引号中间有一个空格,意思是在A1单元格中查找空格字符,并返回空格字符所在的位置,结果返回一个错误值,说明A1中并不包含空格字符,你也可以用CTRL+F查找命令来验证,是否能找到空格。这里只是借题发挥一下,帮大家多掌握几个函数!
那么我们用MID函数将这个字符取出来,在B1单元格中输入公式
=MID(A1,8,1)
意思是将A1单元格的第8个字符取出来,结果为空白,看不到是什么字符.
接着在C1单元格输入
=CODE(B1)
意思是返回B1单元格字符的ASCII码,结果为63,这说明这个看不见的字符的ASCII码为63
我们可以百度ASCII码对照表,可以看到ASCII码为63的字符为问号
那么既然是问号,为何不显示问号呢?
我们再来比较一下,在B2单元格输入”?”,下拉C1的公式到C2,发现”?”的CODE也为63,我们在B3单元格输入
=B1=B2
返回FALSE,说明B1和B2两个单元格的值并不相等.也就是说B1单元格的值并和问号并不等同.
我们知道了问号的代码为63,那么空格的代码是多少呢?从上面的对照表可以清楚地知道,空格的代码为32,你也可以在单元格中输入一个空格,如在B4单元格输入空格,在C4输入公式,返回值果然为32
那么这个符号到底是什么?继续追问,刚才我们在输入CODE函数时,发现还有一个unicode函数,我们来试试.
在D1单元格输入
=Unicode(b1),并且下拉公式到D4
发现,除刚才的空白字符的UNICODE和CODE函数的返回值不同,其他都是相同的。
继续百度UNICODE 160的字符是个啥东东?
根据上面的对照表,我们发现UNICODE 160的字符为不可见字符,标注为NBSP,无中断空格,英语全称为: Non-breaking space
原来这是网页中表示空格的一种方法,和普通的空格还是不一样的。所以从系统中导出的东西,会出现一些字符无法识别的情况
常用的文本函数和字符的ASCII码
常见字符的ASCII代码,一定要知道