【OFFICE 365】多字段排序和重复值删除
去重是数据处理中常用的操作,在 Excel 中使用【多字段排序 + 删除重复值】是一个不错的去重办法。在此之前,我们通常会构建一个辅助列,使用 COUNTIF
函数统计重复次数,作为验证的依据。
温馨提示!数据统计过程中,我们通常会一边统计一边验证,以确保每个步骤的结果都是正确的。
话不多说,我们来开始今天的学习吧~
一. 准备工作:统计重复数据
如下的 Excel 文件中,存在很多会员更换手机号码进行重复注册的问题。我们需要对重复注册的会员,进行去重,仅保留其最新的注册信息。
首先,我们来了解一下重复值情况。在 E2
单元格录入公式 =COUNTIF(D:D,D2)
,其中第一个参数为计数区域 D
列,第二个参数为计数的条件,对符合条件的进行计数。
简单来说,就是对
D
列中的身份证信息进行分组计数。
点击 E2
单元格右下角进行自动填充:
点击【数据】菜单栏下的【排序】功能,弹出排序对话框。在排序的【主要关键字】中勾选辅助列,排序方式为【降序】,点击确定。
这样 Excel 中的数据就会按照身份证重复次数进行降序排列,我们发现最多的会员一个人重复注册了 3 次。
上述的结果还不够清晰,我们需要继续将身份证相同的放在一起。也就是首先依据身份证重复次数进行排序,重复次数相同时,按照身份证号码进行排序。
继续调出【数据】下的【排序】对话框,点击【添加条件】,在新增的【次要关键字】中勾选身份证字段,点击确定。
此时 Excel 会弹出【排序提醒】框,这是因为身份证是文本类型,Excel 以对话框地形式询问我们按照数字排序,还是按照文本排序?
其中【将任何类似数字的内容排序】其实就是按数字规则排序;【分别将数字和以文本形式存储的数字排序】是按照文本规则排序。
提示: Excel 最多只能存储 15 位的数字,超过长度就会发生溢出。因此,对于超过 15 位的数字字段必须设置为文本格式,才可以正常显示。
这里,我们选择第二个选项,点击确定之后重复次数相同时,身份证号码一致的记录就被放在了一起。
不过【眼尖】的小伙伴已经发现,怎么身份证号码不一样的也被错误地判断成了一致的呢?“猎网” 用户的身份证号码和 “刘仁邦” 用户的身份证号码倒数第二位是不同的。
正如我们提到的 Excel 最多只能存储 15 位有效数字,超过 15 位全部都会变成 0 。所以银行卡、身份证等编号必须存储为文本格式。但使用 COUNTIF
函数计数时,还是会把文本格式的身份证号当做数字进行统计。
在 COUNTIF 函数看来,只要前 15 位数字相同,就是重复值。
因此,我们需要在 COUNTIF
函数的计数条件明确指定为文本。这里有个技巧,使用 D2&"*"
替换原来的 D2
实参即可。其中 &
为文本连接字符,*
为通配符,表示一个或多个任意字符。
因为 &
为文本连接符,所以 E2&"*"
的最终结果就是文本。将 E2
单元格的公式修改为 =COUNTIF(D:D,D2&"*")
即可。
修改之后,分组计数就恢复正常了!
接下来,由于对于重复数据,我们希望保留用户最新注册的信息,因此还需要添加一个排序条件。在重复次数相同,身份证号码一致时,按【加入会员日期】降序排列。
二. 删除重复数据
现在,准备工作结束,我们可以开始删除数据啦~如图,对于前三条重复的数据,我们需要保留第一条最新的数据,并以此类推,每组数据均保留第一条数据。
幸运的是,我们并不需要手动完成上述操作。Excel 为我们提供了【删除重复值】的功能,默认便是将相同内容的第一条记录保留,其他记录删除。
所以,我们前面将每组重复数据中日期最新的记录放在第一条,现在就可以一键删除了。点击【数据】选项卡中的【删除重复值】,弹出【删除重复值】对话框,点击【取消全选】,并勾选身份证字段。
点击确定之后,即可完成重复值删除。
辅助列中的重复次数都变成了 1 ,现在可以删除辅助列了。
以上就是今天的全部内容啦!
总结
在删除重复数据时,我们通常使用【COUNTIF】条件计数函数来验证操作过程,再由【多字段排序 + 删除重复值】来将重复的记录删除。
值得一提的是,使用 COUNTIF
函数统计身份证、银行卡等超过 15 为数字的内容时,需要在条件上添加 &"*"
,将条件指定为文本格式。此外,【删除重复值】默认保留每组的第一条记录。