Excel精英培训网

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

[已解决]选出重复行最多的行

[复制链接]
发表于 2013-6-8 20:01 | 显示全部楼层 |阅读模式
1、把表1中重复行数最多的行选出来生成表2。生成结果如表3
2、表1中重复最多的行数字是 1 2 4 5 6 和 2 3 4 6 7。其它行重复少或不重复,全部要删除。
谢谢!
最佳答案
2013-6-8 23:30
写了一个,可以提出重复最多的一行,Private Sub CommandButton1_Click()
Dim d As Object, sr As String
Set d = CreateObject("scripting.dictionary")
For x = 2 To 18
sr = ""
  For y = 1 To 7
    sr = sr & "-" & Replace(Cells(x, y), " ", "")
  Next y
  d(sr) = d(sr) + 1
Next x
arr = d.keys
arr1 = d.items
m = Application.Max(arr1)
For x = 0 To UBound(arr1)
If arr1(x) = m Then
   k = k + 1
   arr2 = Split(arr(x), "-")
   For y = 1 To 7
    Cells(k + 1, y + 9) = arr2(y)
   Next y
End If
Next x
End Sub

选取表格里重复行数最多的行.rar

9.44 KB, 下载次数: 7

发表于 2013-6-8 23:26 | 显示全部楼层
没看明白,最多的行怎么会有两个呢,最多是怎么算出来的
回复

使用道具 举报

发表于 2013-6-8 23:30 | 显示全部楼层    本楼为最佳答案   
写了一个,可以提出重复最多的一行,Private Sub CommandButton1_Click()
Dim d As Object, sr As String
Set d = CreateObject("scripting.dictionary")
For x = 2 To 18
sr = ""
  For y = 1 To 7
    sr = sr & "-" & Replace(Cells(x, y), " ", "")
  Next y
  d(sr) = d(sr) + 1
Next x
arr = d.keys
arr1 = d.items
m = Application.Max(arr1)
For x = 0 To UBound(arr1)
If arr1(x) = m Then
   k = k + 1
   arr2 = Split(arr(x), "-")
   For y = 1 To 7
    Cells(k + 1, y + 9) = arr2(y)
   Next y
End If
Next x
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 00:41 , Processed in 0.309466 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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