用excel处理重复数据
我们在处理数据时,重复数据常常会对分析造成很大麻烦,因此数据整理初期一个重要的工作是排重,excel2007以上版本中有一个删除重复项功常便捷,但是每次点来点去也很麻烦,下面我们用公式来对一些重复数据进行处理
一、【单列提取不重复值】
先将数据列定义名称
{=INDEX(名称,MATCH(,COUNTIF(E$1:E1,名称),))} 下拉
大致思路是:根据E$1:E1下拉形成一个动态区域,countif依次判断每个区域中相应数据的出现次数并形成一个内存数组,然后match判断0在数组中出现的位置,最后index来完成最后的引用。此公式不长也不难,有个值得注意的地方是match的使用,它的第一个参数被省略了,但是match的第一个参数又是“必需”的,这似乎违背规则,实际上并没有,因为excel对省略的参数默认为0,可以参与计算,它不等同于"",后者excel会认为其为文本值,无法参与计算,因此,MATCH(,COUNTIF(E$1:E1,名称),))等同于MATCH(0,COUNTIF(E$1:E1,名称),))
顺便说:我们经常使用countif来生成数组,从而将数据转化为1和0,例如,如果想计算单列重复数据个数,可以使用{=SUM(1/COUNTIF(名称,名称))}
二、【多列提取不重复值】
{=INDIRECT(TEXT(RIGHT(MIN(IF(COUNTIF($D$1:D1,$A$2:$B$8),4^8,ROW($2:$8)*100+COLUMN(A:B)*10001)),4),"r0c00"),)&""} 下拉
公式很长也比较复杂,数据列在A2:B8,提取列在D列,主要思路还是用countif生成内存数组,然后对这个数组进行处理最后达到目标,这里注意一个"r0c00",这个的意思是用text将处理后的数组变成单元格的RC引用形式,然后再用indirect进行引用
三、【查找重复值的对应信息】
如图,

想在产品列查询出某个产品对应的所有订单号,产品和订单号是一对多的关系,同一个产品有多个订单号,可用如下公式实现:
{=INDEX(B:B,SMALL(IF($A$2:$A$130=$C$1,ROW($A$2:$A$130),65536),ROW(1:1)))&""} 下拉
根据输入在C1的产品名,提取出其对应的所有订单号,大致思路是根据IF条件判断形成一个数组,此数组最大值是65536,其余是根据C1的条件形成的值,然后用small依次提取出第ROW()个最小值的位置并用index引用。
用excel处理重复数据的更多相关文章
- EXCEL 处理重复数据名字后面追加值
近期要用 EXCEL 处理重复数据名字后面追加值的,如图: 先排序,再根据条件追加 [公式]=+B6&IF(COUNTIF($B$6:B6,B6)-1>0,"_" & ...
- Excel删除重复数据及用公式筛选重复项并标记颜色突出显示
当表格记录比较多时,常常会有重复数据,而重复记录往往只希望保存一条,因此需要把多余的删除:在 Excel 中,删除重复数据有两种方法,一种是用"删除重复数据"删除,另一种是用&qu ...
- 使用Excel过滤重复数据
如题 由于数据太多,没有办法人工过滤,所以借助Excel 我的数据是这样的 需要找出里面重复的数据 首先,选中需要筛选的数据,点击开始 --> 条件格式 --> 突出显示单元格规则 --& ...
- EXCEL对比重复数据
一. EXCEL 突出重复项 1. 选择对应的数据 EXCEL 里选择好数据 2. 选择条件格式 这样就完成了数据重复的突出,可以按条件筛选.选择自己想要的数据
- excel删除重复数据
1.点击任意单元格2.选择菜单栏的数据-->删除重复项 -->自定义重复
- Excel对重复数据分组,求出不同的数据(office 2013)
第一步: 第二步: 第三步:
- Excel常见操作,重复数据,去除数据关联
Eecel对一个数据进行操作后按住右下角的十字架往下拉就可以对下面的操作进行相同 的操作,所以只需先对一个数据进行操作,再拉下来就可以了 通过公式处理的数据跟其它数据有关联 需要对这些数据进行去除它们 ...
- Excel 表格查找重复数据,去重复统计
找出表格是否有重复数据: =IF(AND(G20=G19,D20=D19),"是","否") 筛选移除[重复的数据]然后开始统计 =SUBTOTAL(9,E2: ...
- Excel按照某一列的重复数据设置隔行变颜色效果
问题:如图所示,想按照A列中的重复数据设置隔重复行变颜色的效果,能否通过条件格式命令实现. 方法1:(最佳答案) 条件格式公式:=MOD(SUMPRODUCT(--($A$1:$A1<>$ ...
随机推荐
- .Net面試4套
一 1. 面向对象的思想主要包括什么? 答: 继承,多态,封装,类,对象,接口,聚集,聚合,泛化 2. 什么是ASP.net中的用户控件 答: 用户控件就是使用.ascx作为扩展名的文件,其将多种服务 ...
- Cheatsheet: 2013 10.01 ~ 10.08
Other 20 Tips for becoming a better programmer Top 10 Movies for Programmers .NET RaptorDB - The Key ...
- webAPI获得链接客户端IP地址
public static class HttpRequestMessageExtensions { private const string HttpContext = "MS_HttpC ...
- JBOSS批量扫描
exploit-db提供出了EXP,如下: /* * JBoss JMXInvokerServlet Remote Command Execution * JMXInvoker.java v0.3 - ...
- Beaglebone Black–GPIO 开关 LED(三极管与继电器实验)
上一篇,用 GPIO 直接供电给 LED,用高低电平作开关,不靠谱.GPIO 是信号用的,不是当电源用的.而且,一个 GPIO 只能给可怜的 5mA 左右,取多了会烧(我没烧过不知道是不是真的会烧,但 ...
- SQL:with ties
摘自: http://www.cnblogs.com/huanghai223/archive/2010/10/26/1861961.html “从100万条记录中的得到成绩最高的记录”.看到这个题目, ...
- FLASH CC 2015 CANVAS (一) 与AS3的写法区别
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 AS3 JS stop() this.stop(); mc.stop() this.mc.stop( ...
- css 背景色渐变---和背景色透明
1 背景色渐变 background:#fb0000; background: -webkit-gradient(linear, left top, left bottom, color-stop(0 ...
- Servlet学习
编写Servlet应该注意的一些细节: 1: 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web ...
- jQuery中的遍历
在原生javascript中我们用的最多的遍历就是for,但是在jQuery里面有个方法比for还有强大,它就是我们经常看到的each()方法,当然了如果考虑性能方面的话还是建议用for来进行元素的遍 ...