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 getparameter 乱码_request.getParameter(“参数名”) 中文乱码解决方法

今天浏览项目时候,遇到一个问题,页面用${requestScope.参数名 }获取的值是乱码,然后搜了一下,最后说是编码的问题,附上查找的结果:在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中&a…

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

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

java两种异常_JAVA两种异常的区别 (转)

Java提供了两类主要的异常:runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。它们的不同之处表现在两方面&…

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

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

java如何阻塞和同步_同步与异步,阻塞与非阻塞

今天早上关注了这个问题,刚抽出时间大概整理下,以下仅是个人理解:一定要多看几遍代码并结合文字理解下引0、从I/O说起这些概念之所以容易令人迷惑,在于很多人对I/O就没有清晰准确的理解,后面的理解自然不可能正确。我想…

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

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

编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...

我正在尝试使用javassist以编程方式创建和编译实现接口的类(在运行时)。每当我调用该动态类的实例时,都会收到以下错误消息:java.lang.AbstractMethodError: FooImpl.test()Ljava/lang/Object;这是我的界面public class FooBarInterface {public T getEn…

c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...

现在在编程语言排行中,Java毫无争议的排在第一位,Python以及C语言紧随其后。现在很多人拿Java以及C语言作比较:有人认为Java作为当前最热门的编程语言,学习Java的出路最大或者说作为一个合格的程序员一定要了解学习一下Java编程&a…

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

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

java怎么设置多个输入_Java中从键盘输入多个整数的方法

Java中从键盘输入多个整数的方法发布于 2020-4-2|复制链接分享一篇关于Java中从键盘输入多个整数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小妖过来看看吧例题:求数列的和 分别输入两个整数n,m,中间以空格隔断&…

从java代码获取类名_java代码获取当前类类名、方法名

获取类名:1、在类的实例中可使用this.getClass().getName();但在staticmethod中不能使用该方法;2、在staticmethod中使用方法:Thread.currentThread().getStackTrace()[1].getClassName();获取方法名:Thread.currentThread().getStackTrace()…

linux将mysql导出表数据导入另一台服务器_远程linux服务器mysql数据库导入和导出.sql文件...

今天对需要将服务器上的数据库放到本地环境,之前没怎么这么操作过,ORZ,弱鸡,这篇帖子不错,收藏了!!!远程linux服务器mysql数据库导入和导出.sql文件大部分情况本地开发环境为windows…

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 if 单行,php – 单行if语句或if语句没有大括号坏习惯?

最好的做法是编写别人可以轻松读取和更新的代码。您的第一个表单是有问题的,因为它不遵循大多数PHP开发人员使用的表单:if (condition) {// code} else {// code}// ... or ...if (condition){// code}else{// code}// ... or ...if (condition) { /* sh…

php 错误 异常,php中的异常和错误解析

PHP错误是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查甚至无法运行的情况。PHP异常一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。本文介绍了php中异常和错误的相关…

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

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