Excel数据清洗之九 处理数值类型的ID

我们经常会遇到另一种类型的分类数据,“数值类型的ID”,例如,

这里的ID就是数值类型的。这样的ID有一个问题,就是你很可能会将ID这一列设置为常规或者数值类型。

然后就会遇到一些问题。

比如,公司的系统升级,原有的5位ID不够用了,现在改用9位ID了。新的ID是这样的形式,

但是对于系统中已有的ID,采取的措施是前面补0,所以系统中的ID是这样的形式,

我们的ID列的格式是常规,如果直接输入000010110,结果就是变成了10110。所以需要先在前面输入一个英文的单引号:',表示这个单元格的数值是以文本形式存储的。

但是,我们在别的数据源中也有类似的情况,比如在某个文本文件中,也有很多数据,

这些ID都已经按照要求补充为9位了。

我们通过复制/粘贴,或者直接用Excel打开文本文件的方式,将这些数据导入到Excel表格中,

你会发现,这些数据的ID被变成了数值,而前面的四个0也被去掉了。这样,就造成了同一个ID在表格中出现了多个不同的版本,当我们用ID进行分类统计时,就会造成分类不一致的问题。

一个错误的处理方法

很多人遇到这种情况,会采用一种处理方法:“自定义格式”。

选中ID列,按Ctrl+1打开格式对话框,在自定义格式中输入“000000000”,

点击确定后,结果如下,

除了对齐方式外,看上去没有问题了。

但是这是错误的。我们以第一个ID和第四个ID为例,看上去都是“000010110”,但是通过LEN函数判断一下长度,

我们发现,它们的长度不同。尽管第四个ID看上去是“000010110”,但是前面的四个0是显示格式里设置的,并不是真正存在的。

这样在统计时就会出现两个ID,

所以,不建议使用自定义格式的方法处理这种情形。

正确的处理方法

可以采用下面的方法来进行数据清洗工作。

首先,添加一个辅助列,

在其中输入公式:

=TEXT(B3,"00000000")
这个公式的意思是根据B3列的值生成新的文本,后面的“000000000”表示新文本的格式,9位数字,不足的前面补0

填充到整列,

复制,然后在ID列中粘贴成数值,

得到结果,

可以看到,所有的ID长度都变成了9位。这样的就可以避免ID分类不一致的情况了

删掉辅助列和长度列即可。

总结和其他

这里的介绍的TEXT函数在数据清洗中经常会用到。大家有兴趣的话可以在本公众号中搜索相关的文章学习。

如果你的数据清洗工作比较复杂,这个数据清洗的任务可能很艰巨,你可以关注下面的公众号:ExcelEasy寻找更多方法和技巧。

(0)

相关推荐