EXCEL中如何根据某列找到重复的行,并将重复只保留一条其余的删除?

如题所述

第1个回答  2022-11-14
分类: 电脑/网络 >> 软件
问题描述:

注: countif 似乎找出的是重复的列,无法自动让重复的列保留一条,而是把所有重复的边数标出,这样

对于想将重复数据保留一条,而不是全部删除的我来说,不实用。

解析:

看看示范例子,打开的时候选择启动宏(数字证书),可以实现你要的目的的,如果有什么疑问,可以联系QQ 399001
win-club/ray/del.xls

-----

用宏处理这样的问题相对方便一点,有兴趣试试:

一、按ALT+F11 打开VB编辑器

二、双击左边靠上的【工程资源管理器】中的【MS Excel 对象】中的ThisWorkbook,在右边的代码窗口贴入下面的代码:

Sub 删除重复数据()

'以col列为条件删除的重复行数据

'本例是删除标题为sheet1的EXCEL表中以A列(从A2单元格开始)为条件的重复韩国数据

Application.ScreenUpdating = False

'可根据实际情况修改下面三行的结尾值

Dim sheetsCaption As String: sheetsCaption = "Sheet1"

Dim Col As String: Col = "A"

Dim StartRow As Integer: StartRow = 2

'以下不需要修改

Dim EndRow As Integer: EndRow = Sheets(sheetsCaption).Range(Col & "65536").End(xlUp).Row

Dim Count_1 As Integer: Count_1 = 0

Dim count_2 As Integer: count_2 = 0

Dim i As Integer: i = StartRow

With Sheets(sheetsCaption)

Do

Count_1 = Count_1 + 1

For j = StartRow To i - 1

If .Range(Col & i) = .Range(Col & j) Then

Count_1 = Count_1 - 1

.Range(Col & i).EntireRow.Delete

EndRow = Sheets(sheetsCaption).Range(Col & "65536").End(xlUp).Row

i = i - 1

count_2 = count_2 + 1

Exit For

End If

Next

i = i + 1

Loop While i < EndRow + 1

End With

MsgBox "共有" & Count_1 & "条不重复的数据"

MsgBox "删除" & count_2 & "条重复的数据"

Application.ScreenUpdating = True

End Sub

三、回到EXCEL表,运行菜单 【工具】-【宏】-【宏】,选择 删除重复数据 这条宏,然后按执行。

这里有示范例子:
win-club/ray/del.xls

注:为方便,我添加了一个按钮的控件执行这个宏,你点击按钮就可以看到结果了,第二个表有原始数据。
相似回答