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

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

8704d402902f5f4eeea53082ccae2a79.png

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

0a2d37682c467399370318724445c2fe.png

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

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

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

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

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

4081c210930834a3150c3e33b3ab230f.png

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

b9987886be53f6cf83c47e13dd47ba59.png

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

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

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

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

3829d4c5f1e09ded035f6b9643e8be74.png

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

a174cb2155751befa88b64ddabe2aac0.png

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

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

eaa6cc270c4818ca82d8d57b0bebb253.png

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

7b334a6df9faee8747ea0387519f8141.png

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

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

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

cf0f441c693deefa72f08b49b9459b90.png

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

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

1de9ca1814e01c4e278a3a6a1ec88709.png

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

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

更多相关阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cas java单点登录_java单点登录系统CAS的简单使用

http://blog.csdn.net/yunye114105/article/details/7997041参考:http://blog.csdn.net/diyagea/article/details/50638737(配置SSL协议)http://www.cnblogs.com/notDog/p/5264666.html背景有几个相对独立的java的web应用系统, 各自有自己的登陆验证功能…

md5 java 工具类_Java实现一个MD5工具类

I. MD5工具类利用JDK封装一个简易的MD5工具类,逻辑比较简单,直接贴下具体实现public static String getMD5(String content) {String result "";try {MessageDigest md MessageDigest.getInstance("md5");md.update(content.getBy…

java class private_Java class 中public、protected 、friendly、private的区别

转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33cJava class 中public、protected 、friendly、private的区别1.类(class)可见性修饰符: public—在所有类中可见,在其他包中可以用import导入。缺省—就是没有修饰符&#xff…

Java 将byte转换kb_【Java】把字节数B转化为KB、MB、GB的方法

在文件处理的系统中,很容易就能通过一些系统自带的方法取出其大小,问题是这个大小往往只是一个字节数B。如果要把这个字节数转化为KB、MB、GB的最终呈现给用户,则涉及到整除与取余的算术运算。方法如下:public static String getP…

java 常见 错误_JAVA几个常见错误简析

JAVA几个常见错误简析Java看起来设计得很像C,但是为了使语言小和容易熟悉,设计者们把C语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。下面就来和小编一起看看JAVA几个常见错误简析吧。1、空指针错误 java.lang.NullPointerExc…

Java中文乱码破碎重组_总结彻底解决Spring MVC+Mybatis中文乱码问题

Java对于新手最容易出现的问题就是中文乱码的问题。今天我就来总结一下彻底解决Spring mvcMybatis中文乱码的方案。首先要看打一断点看一下Controller接收到参数值是否正常。如果不正常多半是因为Spring或者页面编码的设置问题。一、Spring或页面编码问题在JSP页面第一行加上下…

Java8的产品周期_java8的时间和`Date`的对比

java8提供了新的时间接口。相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低,比Calendar低。1. LocalDate,LocalTime,LocalDateTimeLocalDate 代表日期,LocalTime表示时刻,类似11:23这样的时刻。 LocalDateTime就是前面2个的…

java cpu高_Java中的CPU占用高和内存占用高的问题排查

下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程。如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下。1、Java CPU过高的问题排查举个例子,如下:package com.classloading;public…

solr 时间转成java_solr时区设置解决时间多8小时问题

今天发现我博客里文章的时间与实际时间差了8小时,正好比原来时间多出8小时,想想应该是时区不一致的问题。用solr web工具查询出来的数据原样:"create_time": "2018-01-18T11:22:06Z"{"original": 1,"crea…

php变量原格式输出,PHP格式化输出打印变量

PHP 常用的输入变量函数print_r,但是输出没有换行,看起来很费力 我们可以自定义一个函数来实现变量的格式化输出,代码如下: function dump($vars, $label , $return false) {if (ini_get(html_errors)) {$content "\n&quo…

JAVA语言写的,用java语言写

Caballariistatic int argument;static int count0;public static void main(String[] args){argument5;printResult("",argument);System.out.println("总共"count"种");}public static void printResult(String result,int left){if(left1){Sy…

php语录网站,杨泽业:给你的wordpress博客添加经典语录功能,适合所有php网站

我们做一个网站就是要不断给访客提供最佳的用户体验,同时提升自己的品牌价值,而文章结束的经典语录的功能,完全可以实现我们所要达到的效果。(如下图)给你的wordpress博客添加经典语录功能这个是怎样实现的呢?其实很简单&#xff…

matlab搭建的应用层架构逻辑,软件设计的三层架构

1:三层架构是什么?三层架构是一个分层式的软件体系架构设计理念。把软件架构分为三层;1:UI层 (user interface layer) 界面层2:BLL层 (business logic layer) 业务逻辑层3:DAL层 (data access laye…

mysql null 0 空,MySQL的空值和NULL区别

从本质上区别:1、空值不占空间2、null值占空间通俗的讲:空值就像是一个真空转态杯子,什么都没有,而null值就是一个装满空气的杯子,虽然看起来都是一样的,但是有着本质的区别。例子:创建一个test…

强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...

笔者之前写过一些选购笔记本的文章,就有不少网友问了这个问题:笔记本电脑需要每天关机么?一直开着有没有问题?这里说得一直开着是选择了合盖睡眠(或者休眠)的方式。使用时翻开笔记本盖子就可以工作,工作做完后合上盖子…

python关闭exe程序_Win 10 中使用 Python 碰到的奇怪现象

优质文章,第一时间送达!作者:流光飞舞来源:https://shuhari.dev/blog/2019/11/win10-store-python最近在使用 Python 的时候发生了很奇怪的现象:从命令行执行 python.exe并不会进入 REPL,似乎也没有其他反应…

mulitpartfile怎么接收不到值_手机有时接收不到微信消息通知,怎么办?超全解决方案...

不知道大家在使用微信的过程中有没有遇到以下情况,在自己看视频或者刷其他网页的时候,没有接收到微信的任何通知和提示的消息。等到你进入微信页面后,突然发现有很多未读信息。这种情况时有发生,很多人都反应说微信接收消息总是会…

生活 list.php,list.php

require_once config.php;// 接收传来的分类id$categoryId$_GET[categoryId];//3// 查询当前分类下的文章// echo $categoryId;// 连接数据库$connectmysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);// 写sql$sql"select p.id,p.title,p.feature,p.content,p.created,p.…

苹果呼叫转移设置不了_怎么设置别人电话打不进来

您可以尝试输入【**21*888888#】并按下拨打键,开启本机的呼叫转移功能,在开启之后别人拨打您的电话会转移到888888这个空号,实现别的电话无法打入的效果。以下就是相关的步骤介绍:1、只需要在安卓或者苹果iOS 11系统的手机的拨号界…

jdk db版本_企业视频会议系统音视频通话EasyRTC-SFU版本研发中更合适的配置文件格式-TOML配置介绍 - TSINGSEE...

在 EasyRTC-SFU 版本的开发过程中,很多配置需要存储在配置文件中。开发人员经常使用的配置文件有 ini、json、xml、yaml 等格式,在综合分析各种文件格式的优劣后,我们最终确认使用 toml 格式作为配置文件格式。ini 文件格式是最传统的配置文件…