用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(C#)Parallel"循环"的解释以及与循环的比较
Parallel 类提供对并行循环和区域的支持. 许多个人计算机和工作站都有两个或四个内核(即 CPU),使多个线程能够同时执行. 在不久的将来,计算机预期会有更多的内核. 为了利用当今和未来的硬件, ...
- 数据库批量修改表名,增加前缀(SQL server)
exec sp_msforeachtable @command1=' declare @o sysname,@n sysname select @o=''?'' ,@n=stuff(@o,1,7,'' ...
- SQL十进制和十六进制相互转换
CREATE FUNCTION ufn_ConvertInt2Hex ( @Num BIGINT ) ) AS BEGIN /************************************* ...
- js 定位到某个锚点
js 定位到某个锚点 html页面内可以设置锚点,锚点定义 <a name="firstAnchor">&nsbp;</a> 锚点使用 <a ...
- cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
1.CPU即中央处理器,是英语“Central Processing Unit”的缩写.CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种控制命令,执行微操作 ...
- Java——Socket编程(一)
1. 网络基础知识 两台机器之间需要进行通信,需要满足的条件: 每个机器有一个唯一的标识符(IP地址): 他们之间进行通信需要用同一种语言(协议): 每台主机上面有多个应用程序,如QQ,微博,迅雷等, ...
- [51NOD1230]幸运数(数位DP)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1230 dp(l,s,ss)表示长度为l的数各位和为s,各位平方 ...
- C#控制台->>四则运算
用户需求: 要求编写一个0-10之间的整数进行四则运算,程序能接收输入的整数答案,并判断对错,程序结束时,统计出答对.答错的题目数量!并且0-10的整数是随机生成的,用户可以用键盘输入来选择四则运算中 ...
- 起点CG原创教程——digicel.FlipBook.6教程
http://blog.renren.com/blog/262793929/473221163
- [SAP ABAP开发技术总结]反射,动态创建内表、结构、变量
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...