在工作中,经常会有需要在对原始记录清单进行整理时,剔除其中一些重复项。所谓的重复项,通常是指某些记录在各个字段中都有相同的内容(纵向称为字段,横向称为记录),例如下面图中的第三行数据记录和第五行数据记录就是完全相同的两条记录,除此以外还有第六行和第十行也是一组相同记录。

在另外一些场景下,用户也许会希望找出并剔除某几个字段相同的但并不完全重复的“重复项”,例如下面图中的第7行记录和第12行记录中的【姓名】字段内容相同,但其他字段的内容则不完全相同。

以上这两种重复项的类型有所不同,在剔除操作的实现上也略有区别,但本质上并无太大差别,可以互相借鉴参考。下面将以这两种场景为例,介绍三种常用的删除Excel中重复项操作技巧。

一、使用删除重复项功能去除Excel中的重复项

【删除重复项】功能是Excel 2007版本以后新增的功能,因此适用于Excel 2007及其后续版本。

将活动单元格定位在数据清单中,然后在功能区上依次单击【数据】——【删除重复项】,会出现【删除重复项】对话框。

对话框中会要求用户选择重复数据所在的列(字段)。假定我们将“重复项”定义为所有字段的内容都完全相同的记录,那么在这里就要把所有列都勾选上。而如果只是把某列相同的记录定义为重复项,例如文章开头所提到的第二种场景情况,那么只需要勾选那一列字段即可。

在勾选所有列以后,单击【确定】按钮,就会自动得到删除重复项之后的数据清单,剔除的空白行会自动由下方的数据行填补,但不会影响数据表以外的其他区域。效果如下图所示:

二、使用高级筛选功能删除Excel中的重复项

在2007版出现以前,【高级筛选】功能一直是删除重复项的利器。

将活动单元格定位在数据清单中,然后在功能区上依次单击【数据】——【高级】(2003版本中的操作路径是【数据】——【筛选】——【高级筛选】),会出现【高级筛选】对话框。

对话框中会要求用户指定列表区域,就是数据清单所在的单元格区域,默认情况下会自动生成。筛选方式上一般选择“将筛选结果复制到其他位置”,以方便删除重复项以后的处理操作。指定这种方式以后,对话框中会要求用户指定“复制到”哪里,也就是删除重复项以后的数据清单放置位置,用户指定其左上角单元格的位置即可,在这个例子中我们设定为E1单元格。最后一项也是删除重复项最关键的一个选项必须勾选:【选择不重复的记录】。如下图所示:

单击【确定】按钮以后,就会在E1单元格开始的区域中生成剔除重复项以后的另一份数据清单,效果如下图所示:

假定按照第二种场景的方式来定义重复项,就是需要删除所有【姓名】字段内容重复的记录,可以这样操作:

在数据清单中,选中【姓名】字段所在的区域A1:A12单元格,然后在功能区上依次单击【数据】——【高级】(2003版本中的操作路径是【数据】——【筛选】——【高级筛选】),会出现【高级筛选】对话框。筛选方式选择“在原有区域显示筛选结果”,【选择不重复的记录】复选框同样必须勾选,如下图所示:

选择【在原有区域显示筛选结果】的方式,使得对A列不重复项的筛选结果能够同时影响到其他字段上。单击【确定】按钮后,筛选结果如下图所示。将这个筛选的结果复制粘贴出来,就等到一份剔除姓名字段重复项以后的新清单。需要补充的一点是,对于姓名字段相同的记录,这样的剔除操作过后,保留的是最先出现的记录。例如在第七行和第十二行两个“吴凡”之间,Excel保留的是最先出现的第七行记录,而剔除了后面的第十二行记录。

三:使用公式删除Excel中的重复项

如果会一点函数公式,那么用函数公式配合筛选的方式来操作会更灵活多变一些,可以适应更多复杂条件。

在D列增加一个辅助公式,在D2单元格中输入公式:=A2&B2&C2,然后向下复制填充,生成的一列公式结果是将各条记录中的三个字段内容合并在一个单元格中。然后在E列再增加一个辅助公式,在E2单元格中输入公式:=COUNTIF(D2:D$12,D2),特别注意公式中绝对引用符号$的使用位置。将公式向下复制填充,得到下面图中所示的结果:

COUNTIF函数的作用是统计某个区间内,与查询值相同的数据的个数,上面那个公式中的D2:D$12这种绝对引用和相对引用相组合的方式就可以在公式向下复制的过程中形成一个随位置变化的动态区域,使得COUNTIF函数每次都只跟自己下方的区域中的数据进行对比,而不会牵涉到上方的数据。因此在第三行的时候,会找到2条与“李明28研发部”相同的记录,而到了第五行的时候,就只找到了一条匹配记录。

通过这个公式结果可以发现,所有E列运算结果大于等于2的记录(如果有更多的重复,结果会大于2)就是我们需要剔除的重复项。这个时候,使用自动筛选功能,在E列筛选出大于1所在的行,然后删除整行,再恢复到非筛选状态,就能得到最后所需的清单,如下图所示:

在上面的操作中之所以要将三个字段内容合并在一起,是因为我们在第一个场景中将“重复项”定义为所有字段内容都相同,因此将这三个字段的内容同时合并在一起进行比较,相当于逻辑运算中的”与“运算。假设需要按照第二场景中的定义来进行剔除操作,就不再需要D列这个过渡公式,而是可以直接以A列作为COUNTIF函数的对比区域,可以使用公式:=COUNTIF(A2:A$12,A2)就可以实现相同的效果。需要补充说明的是,这个方法在剔除操作后,所保留下来的记录是重复记录中最晚出现的那条记录。

同样是第一场景,也可以用一个稍微复杂一些的公式来替代D、E两列的公式:=SUMPRODUCT(1*(A2&B2&C2=A2:A$12&B2:B$12&C2:C$12))公式的原理与前面相同。

更多相关阅读

mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧相关推荐

  1. mysql类似于excel的删除重复项_sql删除重复项并保留其中一条(含sql优化)

    背景: 数据库包含重复数据,需要清理掉重复数据,并只保留其中一条. 结论 优化:百万数据查询删除重复数据,耗时从5423秒下降到2秒左右 优化过程: 根据搜索到的资料: 4.删除表中多余的重复记录(多 ...

  2. mysql类似于excel的删除重复项_删除重复数据 excel去除重复数据 怎么筛选重复数据 excel重复数据合并...

    本篇文章主要介绍了"删除重复数据",主要涉及到重复数据方面的内容,对于MySql感兴趣的同学可以参考一下: 最近因为发现数据库中的表有脏数据,需要维护.这些脏数据就是重复数据,需要 ...

  3. vba字典重复key_字典去除重复项问题

    首先,我像利用字典算法进行去除重复项. 然后,由于清单中"名称"和"型号"都有可能相同,但是"名称"+"型号"是唯一的, ...

  4. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

    关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...

  5. execl筛选去重_Excel去除重复项的三种常用技巧

    在工作中,经常会有需要在对原始记录清单进行整理时,剔除其中一些重复项.所谓的重复项,通常是指某些记录在各个字段中都有相同的内容(纵向称为字段,横向称为记录),例如下面图中的第三行数据记录和第五行数据记 ...

  6. linux去除重复字符,Linux去除重复项命令uniq

    本篇介绍uniq命令,uniq也是linux管道命令家族中的一员,其主要功能是去除重复项. 在介绍uniq命令之前,我们先来新建在下面的案例中需要用到的文件/tmp/uniq.txt,内容如下 默认情 ...

  7. vba ado 执行多条mysql 语句,Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结...

    原标题:Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结 本章概要: 1,几个概念 1.1, 数据库和Excel工作簿 1.2,数据表和Excel工作表 1.3,记录.字段 ...

  8. oracle 输出重复记录,ORACLE 去除重复记录

    ORACLE 去除重复记录 delete from tbl_talbe where (col1,col2,col3) in (select col1,col2,col3 from tbl_table ...

  9. java数组重复_JAVA数组去除重复数据

    一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List list = new ArrayList();for (int i=0; i list.ad ...

  10. oracle查询结果怎么去掉重复的,怎么去除重复的查询结果

    如何去除重复的查询结果 要求在 emp 表中找出 sal 相同的员工,我是这个写的: select e1.ename, e2.ename, e1.sal from emp e1, emp e2 whe ...

最新文章

  1. 全国四级网络工程师操作系统部分考纲
  2. 中国12个工科世界第一,网友:全是不吃香的|软科2021世界一流学科排名
  3. linux查看当前shell的方法
  4. SpringBoot 集成 druid 监控数据库报错 Failed to bind properties under ‘xxxx‘ to javax.sql.DataSource 解决(含配置源码)
  5. html绑定按键图片移动,如何使用JS实现用键盘控制图片移动呢?
  6. 前端学习(2133):前端代码复杂带来的问题
  7. ios 隐藏app的插件_等了5年终于复活,iPhone上最干净好用的微博App
  8. 排序算法:堆排序算法实现及分析
  9. 【渝粤教育】广东开放大学 hadoop数据管理 形成性考核
  10. mysql8 距离计算_MySQL创建根据经纬度计算距离的函数
  11. 如何用spss客户端和SPSS AU在线进行单样本T检验操作?
  12. sai绘制羽毛写字教程
  13. 【Linux系统】第6节 Linux系统压缩与解压缩文件
  14. PHP下载远程图片的3个方法
  15. Android LocalServices解耦妙用: system_server进程中各个服务之间的连通器LocalServices
  16. MySQL - 大量 sending data 状态进程,让数据库性能急剧下降。
  17. 【新概念二】 28-No parking
  18. java零基础学习第九天
  19. 锐捷设备设置console和enable密码
  20. pci配置基地址_PCI配置空间简介

热门文章

  1. 阿里云与线下IDC对接IPsec虚拟专用网络
  2. 聊聊精密测量仪器的气源维护知识
  3. 计算机专业英语读书笔记,英语的读书笔记(精选10篇)
  4. 计算机怎么设置本地硬盘启动,怎么设置移动硬盘启动
  5. 应届毕业生外包公司体验
  6. 不想在网易博客写技术文章了
  7. android 格式化sd咔_如何在Android中格式化SD卡 | MOS86
  8. 华为手机信息不弹屏了为什么_华为手机验证码不弹出是怎么回事
  9. 【51CTO学院三周年】随身携带的象牙塔
  10. cartographer栅格地图介绍