加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel(2):在Excel中查找和删除重复值的五种方法

(2013-04-11 11:27:31)
标签:

excel

it

office2013

office2007

office2010

分类: 办公高手

在Excel中经常要查找和删除重复值,可以利用公式、条件格式等来查找重复值,用高级筛选、数据透视表、Excel 2007功能区中的命令、合并计算和VBA代码来删除重复值。假设数据区域为A2:A21,对这些方法分别介绍如下。

http://s8/mw690/5d4af653tda0d63f09197&690

方法一:辅助列+公式法

 

在A列的右侧插入辅助列,在辅助列中输入公式来确定区域中的重复值。

    1.在B2单元格中输入公式

    =IF(SUMPRODUCT(--(A2=$A$2:$A$21))>1,"重复","")

    或:

    =IF(COUNTIF($A$2:$A$21,A2)>1,"重复","")

    然后双击B2单元格右下角的填充柄,公式将自动填充到B3:B21区域。这时可以看到A列中的重复值对应在B列中都显示为“重复”。

http://s8/mw690/5d4af653tda0eb38bdd87&690



方法二:条件格式法

    Excel 2007:

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

 

http://s1/mw690/5d4af653gda0ec9ba1b10&690

㈡删除重复值
方法一:利用高级筛选

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

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

http://s5/mw690/5d4af653gda0ee94153e4&690

http://s5/mw690/5d4af653gda0eebf7d2c4&690
3.单击“确定”。Excel将把筛选后的结果放置到C2:C12中,去掉了其中的3个重复值。

 

方法二:利用数据透视表

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

   http://s6/mw690/5d4af653gda0f4261f2e5&690



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

 

http://s1/mw690/5d4af653gda0f4c2336a0&690

http://s2/mw690/5d4af653gda0f50865071&690

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

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

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

http://s10/mw690/5d4af653gda0f76541249&690

http://s9/mw690/5d4af653gda0f7952f2c8&690

http://s12/mw690/5d4af653gda0f7c9c63db&690

点OK就删除重复项了。

http://s1/mw690/5d4af653gda0f7fcf6500&690

方法四:辅助列+合并计算

    利用Excel中的合并计算功能删除重复值,该方法不仅适用于一列数据,还能合并不同工作表中的多个单列数据并去掉合并后的重复项。以Excel 2007为例介绍如下:

    1.由于数据在A列,以其右侧的B列为辅助列。在B列对应A列数据区域中的任一单元格中输入一个数值,以便Excel进行合并计算。如在B8输入一个数值“2”。 

    http://s2/mw690/5d4af653tda0f8f87ddc1&690

2.本例将删除重复值的数据将放置在D列,选择D2单元格。单击菜单“数据→合并计算”,弹出“合并计算”对话框。单击“引用位置”下的文本框,选择A2:B21区域,单击“添加”按钮,将该区域添加到“所有引用位置”下方的区域中。在“标签位置”下勾选“最左列”,“函数”下方的选项保持默认的“求和”即可。

http://s12/mw690/5d4af653tda0f9408a88b&690

http://s8/mw690/5d4af653tda0f9ad612d7&690

方法五:用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


 



 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有