注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

自由呼吸的张镇麟的博客

喧嚣尘世中的淡定吟唱 命运一直藏匿在我们的思想里

 
 
 

日志

 
 
关于我

流逝的事情,错过的人,只是让我们更加清明的教材!人最重要的,是活在当下,放眼未来!

网易考拉推荐

【引用】在Excel中查找和删除重复值  

2011-11-20 21:33:20|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 在Excel中经常要查找和去除重复值,下面的6种方法都能实现这个目的,其中方法1-3适合于Excel的所有版本,方法4-5仅仅适用于Excel 2007,最后的一种方法是用VBA来实现的。假设数据区在A2:A21中,如图。

      在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    方法一:利用高级筛选

    1.单击菜单“数据→筛选→高级筛选”。

    2.在“高级筛选”对话框中,选择“将筛选结果复制到其他位置”,并且勾选“选择不重复的记录”,单击“列表区域”文本框右侧的按钮,选择区域A2:A21,表示需要筛选的数据区为A2:A21,同样,将“复制到”区域设置为$C$2,如图。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    3.单击“确定”。Excel将把筛选后的结果放置到C2:C18中,去掉了其中的3个重复值。

    方法二:利用公式和排序

    利用COUNTIF函数来确定区域中的重复值。

    1.在B2单元格中输入公式“=COUNTIF(A$1:A1,A2)=0”,然后双击B2单元格右下角的填充柄,公式将自动填充到B3:B21。这时可以看到排在后面的重复值在B列中都显示为“FALSE”。

      在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    2.选择区域A2:B21,然后单击菜单“数据→排序”,选择主要关键字为列B,同时选择“降序”,单击“确定”。可以看到重复的姓名都已排到最后。

    方法三:利用数据透视表

    1.选择A1:A21区域中的任意单元格,单击菜单“数据→数据透视表和数据透视图”,然后直接单击“下一步”按钮,在3步骤之2中可以看到“选定区域”已自动设置为“Sheet1!$A$1:$A$21”,再次单击“下一步按钮”,在3步骤之3中,选择“现有工作表”,区域选择C2单元格,然后单击“完成”按钮。

    2.在“数据透视表字段列表”中,选择“神雕人物名单”,用鼠标左键将其拖至行字段区域,或直接单击“添加到”按钮。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    3.可以看到Excel已自动将重复值去掉,并拼音顺序将名单排好了。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    方法四:用Excel 2007的条件格式

    1.选择区域A2:A21,然后单击功能区“开始→条件格式→突出显示单元格规则→重复值”,在“重复值”对话框中单击“确定”。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    2.可以看到所有重复的姓名都用浅红色标记出来。选择一个姓名,右击鼠标,在弹出的菜单中选择“排序→升序”,使重复的姓名排在一起。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客 

    3.选择一个重复的姓名,再次单击鼠标右键,选择“排序→将所选单元格颜色放在最前面”,Excel将把重复的姓名自动排在最上面以便查看。

    在Excel中查找和删除重复值 - 上观雪儿 - 我的博客  

    方法五:用Excel 2007中的“删除重复项”功能

    选择A2:A21区域,单击功能区“数据→删除重复项”,在“删除重复项”对话框中单击“确定”。

     在Excel中查找和删除重复值 - 上观雪儿 - 我的博客

    Excel 2007自动将重复值删除,并给出提示。

    在Excel中查找和删除重复值 - 上观雪儿 - 我的博客  

    方法六:用VBA

    这两段VBA代码分别运用了Scripting.Dictionary和Collection对象,并利用了其元素具有唯一性的特点。

    1.用Scripting.Dictionary对象:

    Sub Uniquedata()

    Dim Cel As Range, Res

    '创建对象

    Set d = CreateObject("Scripting.Dictionary")

    '遍历数据区域的单元格

    For Each Cel In Range("A2:A21")

        '判断单元格内容是否为空

        If Cel <> "" Then

            '如果字典对象中不包含同样的对象就添加该对象

            If Not d.exists(Cel.Value) Then d.Add Cel.Value, Cel.Value

        End If

    Next

    Res = d.Items

    '将对象中的元素写入工作表

    For i = 0 To d.Count - 1

        Cells(i + 2, 3) = Res(i)

    Next i

End Sub

    2.用Collection对象:

Sub Uniquedata1()

    Dim myList As New Collection, Cel As Range, itm, i As Integer

    On Error Resume Next

    '遍历数据区域的单元格

    For Each Cel In Range("A2:A21")

    '判断单元格内容是否为空

        If Cel <> "" Then myList.Add Cel.Value, CStr(Cel.Value)

    Next

    On Error GoTo 0

    i = 1

    '将非重复值写入工作表

    For Each itm In myList

        Cells(i + 1, 3) = itm

        i = i + 1

    Next

End Sub

    单击右侧文件名下载示例源文件:用VBA提取不重复值.rar

  评论这张
 
阅读(108)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018