Excel数据清洗之十一 处理重复的数据行

前面我们介绍了如何清洗数据,保证分类一致,都是处理的在后续分析统计中导致分类错误的数据。今天开始我们介绍另外一类问题:数值错误。这类问题更加严重一些,因为它们会造成统计和分析结果的错误。

最先要介绍的就是重复行。

在上图中,我们可以看出涂黄色的四行跟涂绿色的四行是重复的。

重复行很难发现,在上图中,如果不是涂了不同的颜色,恐怕很难发现这样的错误。而且,它们并不是像上图展示的那样在表格中挨在一起,这样就更难发现了。

重复行还有一个问题,那就是不一定重复行就是错误,很多时候数据本身就是会重复。因此,在处理重复行之前,我们需要先找出重复行并且判断重复行是否需要被处理。

查找重复行

首先,很多人第一反应是使用条件格式中的突出显示重复值,

遗憾的是,在数据清洗中,一般用不上。因为这里的重复值的判断依据是基于每个单元格在区域中是否重复,而我们所判断的重复值是整行数据必须各列相同才算是重复。

我们可以借助辅助列和函数完成这一点。

首先添加一个辅助列,然后输入公式:

=COUNTIFS($A$2:$A$341,A3,$B$2:$B$341,B3,$C$2:$C$341,C3,$D$2:$D$341,D3,$E$2:$E$341,E3)
这个公式是用于对每一行在整个表中进行计数。

然后将公式填充到表格中的整列,

我们就得到了每行数据在整个表中的计数,那些为“1”的都是不重复的。比1大的都是重复的(有可能有很大的数,比如10,表示同样的数据行出现了10次).

在辅助列中筛选所有大于1的行,

得到的就是那些重复的数据行,

你可以根据这些筛选结果判断重复的数据行是否合理?是应该保留还是应该删除。

删除重复项

一旦你根据筛选结果判断应该删除这些重复数据,就可以使用“删除重复值”功能将多余的数据删除,

鼠标选中数据区域任意单元格,在数据选项卡中点击“删除重复值”,

在对话框中,勾选“数据包含标题”,将所有列都选中,

点击确定,Excel就将表格中的重复值删除掉,并且返回下面的信息,

一个小问题和另外的方法

我们上面介绍使用COUNTIFS进行重复行的判断然后用“删除重复值”功能进行重复值的删除是一个非常常用的手段。但是使用这个方法有一个小问题。我们通过下面的例子来说明,

假设我们有数据如上图,其中Market列是客户编号,记录了每客户每天的销量。

我们按照上面的方法使用公式:

=COUNTIFS($A$2:$A$8,A2,$B$2:$B$8,B2,$C$2:$C$8,C2)

结果却是这些行都是重复的。公式的结果为7,表示表中的7行都是一样的。

这种情况是因为这里的客户编号是全部数字形式(不管单元格式是否是文本),而且超过了15位,COUNTIFS这个函数在比较时,把全部是数字的客户编号当成了数值处理,而Excel中数值的精度是15位,超过15位都是0,所以,上面所有的编号,在COUNTIFS函数中都被当作100115170161619000,所以判断为重复的。

为了避免这种情况,我们在辅助列中使用下面的公式,

=COUNTIFS($A$2:$A$8,A2&"*",$B$2:$B$8,B2,$C$2:$C$8,C2)

这个公式其他部分跟以前一样,只是在进行编号的判断时,不直接使用A2,而是使用A2&"*",通过这个方法,强行让COUNTIFS将编号当作文本处理,结果就没有问题了,

总结及其他

重复数据的处理是比较麻烦的,这里我们只是介绍了通用的场景中如何进行数据清洗。实际上还有一些问题需要考虑,比如“删除重复值”是否只删除了必要的数据行,有没有删掉不应该删除的行?此时需要一些更好的方法帮助我们来进行判断。

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

(0)

相关推荐