我们在处理数据时,重复数据常常会对分析造成很大麻烦,因此数据整理初期一个重要的工作是排重,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处理重复数据的更多相关文章

  1. EXCEL 处理重复数据名字后面追加值

    近期要用 EXCEL 处理重复数据名字后面追加值的,如图: 先排序,再根据条件追加 [公式]=+B6&IF(COUNTIF($B$6:B6,B6)-1>0,"_" & ...

  2. Excel删除重复数据及用公式筛选重复项并标记颜色突出显示

    当表格记录比较多时,常常会有重复数据,而重复记录往往只希望保存一条,因此需要把多余的删除:在 Excel 中,删除重复数据有两种方法,一种是用"删除重复数据"删除,另一种是用&qu ...

  3. 使用Excel过滤重复数据

    如题 由于数据太多,没有办法人工过滤,所以借助Excel 我的数据是这样的 需要找出里面重复的数据 首先,选中需要筛选的数据,点击开始 --> 条件格式 --> 突出显示单元格规则 --& ...

  4. EXCEL对比重复数据

    一.       EXCEL 突出重复项 1.      选择对应的数据 EXCEL 里选择好数据 2.      选择条件格式 这样就完成了数据重复的突出,可以按条件筛选.选择自己想要的数据

  5. excel删除重复数据

    1.点击任意单元格2.选择菜单栏的数据-->删除重复项 -->自定义重复

  6. Excel对重复数据分组,求出不同的数据(office 2013)

    第一步: 第二步: 第三步:

  7. Excel常见操作,重复数据,去除数据关联

    Eecel对一个数据进行操作后按住右下角的十字架往下拉就可以对下面的操作进行相同 的操作,所以只需先对一个数据进行操作,再拉下来就可以了 通过公式处理的数据跟其它数据有关联 需要对这些数据进行去除它们 ...

  8. Excel 表格查找重复数据,去重复统计

    找出表格是否有重复数据: =IF(AND(G20=G19,D20=D19),"是","否") 筛选移除[重复的数据]然后开始统计 =SUBTOTAL(9,E2: ...

  9. Excel按照某一列的重复数据设置隔行变颜色效果

    问题:如图所示,想按照A列中的重复数据设置隔重复行变颜色的效果,能否通过条件格式命令实现. 方法1:(最佳答案) 条件格式公式:=MOD(SUMPRODUCT(--($A$1:$A1<>$ ...

随机推荐

  1. size()弃用

    size() 方法在 jQuery 版本 1.8 中被废弃. 请使用 length 属性代替.

  2. Vi编辑器下使用分屏显示【已自己验证所有】

    :new 水平分割出一个新窗口 :vnew,:vne 垂直分割出一个新窗口 :new+文件路径/文件名; 在新的水平分屏中 载入/新建 文件.[文件存在则载入,不存在则在指定的路径新建,下同] :vn ...

  3. jQuery插件之jquery editable plugin--点击编辑文字插件

    jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件.(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该 ...

  4. Spring的"Hello, world",还有"拿来主义"

    这里有两个类: com.practice包下的SpringTest.java和PersonService.java. Spring可以管理任意的POJO(这是啥?),并不要求Java类是一个标准的Ja ...

  5. ABAP Enhancement:第一部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. 多线程技术在iOS开发中的使用

    进程和线程 要使用多线程,首先需要理解进程和线程这2个概念.这里我简单的说一下. 所谓进程对应的是一个应用程序,负责开辟内存空间供应用程序使用,但是进程不能执行任务(指令).一个进程至少包含一条线程, ...

  7. hdu 1348 (凸包求周长)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1348 Wall Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  8. JavaScript中的加法运算

    <head runat="server"> <title>JavaScript实现加法计算器</title> <script type=& ...

  9. jQuery 中的children()和 find() 的区别

    <!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...

  10. SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming

    SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming 字数545 阅读52 评论0 喜欢1 JCo3.0调用SAP函数的过程 大致可以总结为以下步骤: 连接至 ...