excel怎么找出重复记录?

excel怎么找出重复记录?
09-05-03  古冶 发布
3个回答
时间
投票
  • 0

    洛杉矶奇迹

    假设 行1 是表头
    行2及以下是资料
    术数据之间在A列是没有空格
    代码是:
    Set xx = Range("A1")
    startx:
    Set xx = xx.Offset(1, 0)
    If IsEmpty(xx) Then Exit Sub
    Set yy = Columns(1).End(xlDown)
    starty:
    If yy.Row = xx.Row Then GoTo startx
    If yy.Value = xx.Value And yy.Offset(0, 2) = xx.Offset(0, 2) Then
    Set yy = yy.Offset(-1, 0)
    yy.Offset(1, 0).EntireRow.Delete
    GoTo starty
    End If
    Set yy = yy.Offset(-1, 0)
    GoTo starty
    End Sub

    1.) 所有 删除/插入 - 行/列 的宏代码都需要很小心, 否则判断条件是非常容易出错
    2.) 我弃用最常用的For…Next的循环方法, 因我觉得 GoTo 方法更简洁易明

    你所说的安全性, 由于不清楚实际情况, 无法作答

    如重覆同时删除, 修改如下(在startx:之下加了5行)
    Set xx = Range("A1")
    startx:
    If z = 1 Then
    Set xx = xx.Offset(-1, 0)
    xx.Offset(1, 0).EntireRow.Delete
    End If
    z = 0
    Set xx = xx.Offset(1, 0)
    If IsEmpty(xx) Then Exit Sub
    Set yy = Columns(1).End(xlDown)
    starty:
    If yy.Row = xx.Row Then GoTo startx
    If yy.Value = xx.Value And yy.Offset(0, 2) = xx.Offset(0, 2) Then
    z = 1
    Set yy = yy.Offset(-1, 0)
    yy.Offset(1, 0).EntireRow.Delete
    GoTo starty
    End If
    Set yy = yy.Offset(-1, 0)
    GoTo starty
    End Sub

    09-05-03 | 添加评论 | 打赏

    评论读取中....

  • 0

    张波偌

    '按下 Alt+F11 组合键, 输入并运行(按F5键即可运行)下列代码:



    '本示例在指定工作表的列中对数据进行排序,然后删除包含重复数据的行。



    Sub DeleteColumnDupes()

       Dim strSheetName As String, strColumnLetter As String



       strSheetName = "Sheet1" ' 删除工作表中的重复行

       strColumnLetter = "A"   ' 以 A 列中的重复项作为删除条件







       Dim strColumnRange As String

       Dim rngCurrentCell As Range

       Dim rngNextCell As Range



       strColumnRange = strColumnLetter & "1"



       Worksheets(strSheetName).Range(strColumnRange).Sort _

       Key1:=Worksheets(strSheetName).Range(strColumnRange)

       Set rngCurrentCell = Worksheets(strSheetName).Range(strColumnRange)

       Do While Not IsEmpty(rngCurrentCell)

           Set rngNextCell = rngCurrentCell.Offset(1, 0)

           If rngNextCell.Value = rngCurrentCell.Value Then

               rngCurrentCell.EntireRow.Delete

           End If

           Set rngCurrentCell = rngNextCell

       Loop

    End Sub

    09-05-03 | 添加评论 | 打赏

    评论读取中....

  • 0

    13141516179

    假设重复内容在A列,你可在B列或其它空白列输入公式“=COUNTIF($A:$A,A1)”,然后向下复制此公式。此列单元显示结果为“1”表示无重复记录,如果为“2”或以上则表示有重复记录。再对B列排序(降序),重复的记录就显示在最前面了。

    另一种方法:
    1、对A列排序
    2、在B2单元格输入公式“=if(A2=A1,"重复","OK")”,并向下复制此公式
    3、显示“OK”的为不重复,或重复的第一个
    4、如果要将重复数据删除,先将B列排序,选中B列为“重复”的所有行,删除之

    09-05-03 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助