在excel中,怎么样可以查找到一列中重复的数据并把重复的数据所在的行整行删除?

例如,原表是:a1b2a1c3其中,第三个a和第一个a重复了,excel就自动把第三行删掉,变成:a1b2c3我觉得excel应该能做到吧?请高手指点,谢谢!能不能用VB... 例如,原表是:
a 1
b 2
a 1
c 3
其中,第三个a和第一个a重复了,excel就自动把第三行删掉,变成:
a 1
b 2
c 3
我觉得excel应该能做到吧?请高手指点,谢谢!
能不能用VBA实现呢? 因为有很多,想用个简单的方法,谢谢啊! 1楼和2楼的方法也可以解决问题,就是不够自动化,呵呵,谢谢二位啦!~
展开
 我来答
死亡de舞
2010-07-19 · TA获得超过2.6万个赞
知道大有可为答主
回答量:2299
采纳率:50%
帮助的人:2345万
展开全部
在网上找了个 看看是否能用

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

一、按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表,运行菜单 【工具】-【宏】-【宏】,选择 删除重复数据 这条宏,然后按执行。

参考资料: http://zhidao.baidu.com/question/13914439.html?si=2

zryz
2010-07-19 · TA获得超过430个赞
知道小有建树答主
回答量:518
采纳率:0%
帮助的人:300万
展开全部

简单用countif即可实现,如图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
森林浴1
2010-07-19 · TA获得超过2314个赞
知道大有可为答主
回答量:2104
采纳率:0%
帮助的人:1447万
展开全部
数据-高级筛选-区域中选择要筛选的单元区域-下面有勾选-不重复-确定

能不能用VBA实现呢? 因为有很多,想用个简单的方法,谢谢啊!
回答你,这挺简单的
用下面代码

Sub Slt() '不重复值
Dim dic As Object
Dim arr, k%
Set dic = CreateObject("Scripting.Dictionary")
arr = Range("A1", [A65536].End(3))
For k = 1 To UBound(arr)
dic(arr(k, 1)) = ""
Next
Range("a1:k1000").Clear
arr = dic.keys
[a1].Resize(dic.Count) = Application.Transpose(arr)
dic.RemoveAll
Erase arr
End Sub
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猫之大神
2010-07-19 · TA获得超过6730个赞
知道大有可为答主
回答量:1681
采纳率:100%
帮助的人:1812万
展开全部
假如a,b,a,c在A列,右边的数字在B列。
C1=IF(COUNTIF($A$1:A1,A1)=2,1,0),鼠标放在C1右下角,变成十字后双击。
选C列,数据-筛选-自动筛选,下拉菜单中选1,然后删除所有为1 的行。
-----
补充
Sub test()
Dim i As Integer
Dim j As Integer
i = Range("A65536").End(xlUp).Row
For j = i To 1 Step -1
If Application.WorksheetFunction.CountIf(Range("a:a"), Cells(j, 1)) >= 2 Then
Cells(j, 1).EntireRow.Delete
End If
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式