Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3643|回复: 7

[已解决]怎样清除重复数据

[复制链接]
发表于 2015-1-23 17:28 | 显示全部楼层 |阅读模式
本帖最后由 leobu 于 2015-1-27 21:33 编辑

大家好,有问题求教。工作表中有若干列数据,我们只关注其中的最后四列,(例表中是C、D、E、F列)。现在发现最后四列的的第6至10行数据完全重复,第16至21行完全重复。希望通过编程查找最后四列这一区域中重复的数据并且清除多余的部分。例如:将最后四列的第6至9行清除,而保留最后四列的第10行数据;将最后四列的第16至20行清除,而保留最后四列的第21行数据。原始数据和替换后的数据如图所示。以上操作不能影响相邻区域的数据。请高手们不吝赐教。
最佳答案
2015-1-25 17:52
………………
原始数据.jpg
清除后的数据.jpg

怎样清除重复数据.zip

8.62 KB, 下载次数: 4

发表于 2015-1-23 19:28 | 显示全部楼层
A4公式,横拉、下拉;
=IF(原始数据!A4=原始数据!A3,"",原始数据!A4)


怎样清除重复数据.rar

6 KB, 下载次数: 10

回复

使用道具 举报

发表于 2015-1-23 19:41 | 显示全部楼层

=IF(原始数据!A4=原始数据!A5,"",原始数据!A4)

怎样清除重复数据.rar

5.99 KB, 下载次数: 1

回复

使用道具 举报

发表于 2015-1-23 19:52 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, d, i&, j%, p$
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Sheet1.Range("a4").CurrentRegion
  5. For i = 1 To UBound(arr)
  6.     p = ""
  7.     For j = 3 To UBound(arr, 2)
  8.         p = p & "," & arr(i, j)
  9.     Next
  10.     If Not d.exists(p) Then
  11.         d(p) = i
  12.     Else
  13.         For j = 3 To UBound(arr, 2)
  14.             arr(d(p), j) = ""
  15.             arr(i, j) = ""
  16.         Next
  17.     End If
  18. Next
  19. Sheet2.[a4].Resize(UBound(arr), UBound(arr, 2)) = arr
  20. End Sub
复制代码
回复

使用道具 举报

发表于 2015-1-23 19:54 | 显示全部楼层
………………

怎样清除重复数据.zip

10.65 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2015-1-25 16:37 | 显示全部楼层
感谢两位高手的热情帮助,整体来看dsmch的回复更接近我的原意一些,但是有个问题:最后四列的第6至10行数据完全重复,我只要求删掉第6至9行,而要保留第10行;同理,最后四列的第16至21行完全重复,我只要求删掉第16至20行,而保留第21行。也就是说,最后四列的重复数据只需要保留一行,而将其余的重复部分删掉,麻烦dsmch或者其他高手能帮我把程序修改一下,谢谢。
回复

使用道具 举报

发表于 2015-1-25 17:52 | 显示全部楼层    本楼为最佳答案   
………………

怎样清除重复数据.zip

10.67 KB, 下载次数: 10

回复

使用道具 举报

 楼主| 发表于 2015-1-27 21:28 | 显示全部楼层
感谢dsmch的热情帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 17:31 , Processed in 0.336752 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表