今天给大家聊一下数据清理整理过程中比较常见的一个问题:删除单元格中的空格。这个问题看似简单,但其实有点儿复杂。它大致可以分为四种类型的小问题,接下来,咱们由浅入深,一个一个聊。
1、 正经的空格删除
先说第1种最简单的情况。
如下图所示,A:B是数据源,A列是人名,B列是成绩。由于A列人名的前后包含了大量空格,导致E列的VLOOKUP函数返回错误值。
对于这种情况,直接查找替换,将空格替换为空白即可。
需要注意的是,这里的空格,最好是从单元格中复制一个,而不是手动输入。后文你会了解到,空格有几十上百种风情,而空格键键入的只是其中普通的一种~
2、身份证中的空格
说一种比较特殊的情况,删除身份证中的空格。
如下图所示,A列身份证号中存在空格,需要删除。
有朋友第一反应是查找替换,但是由于身份证属于长文本,替换后会被转换为数值,而单元格有效保存的数值最大长度是15位,这就导致18位的身份证的后3位数值会被转换为0.
常用的解法方法有两个,一个是SUBSTITUTE函数,文本函数返回的结果必然是文本,所以不会导致身份证号变形:
=SUBSTITUTE(A2,” “,””)
另外一个还是查找替换,只不过增加了一点前戏,用格式刷强制单元格转换为文本格式。
3、去除首尾空格
有时候我们不需要把数据中全部的空格都删除掉,而需要删除首尾的全部空格,中间连续的空格保留一个,对此Excel提供了一个专门的函数:TRIM。
如下图所示,A列的数据包含了大量的空格,需要转换为B列的样式。
B2单元格输入以下公式即可:
=TRIM(A2)
4、删除系统导出的空格
上文我们说过,空格有成百上千种,空格键键入的只是其中普通的一种。
你在A2单元格输入公式:
=UNICHAR(ROW(A1))
将它填充到A1:A10000区域,就可以见到各种各样的字符图形,牛啊羊啊飞机啊大炮啊轮船啊汉堡啊等等,也有各种各样的可见不可见的空格。