用VBA统计重复数据

2024-10-12 03:15:59

1、第一步:准备数据

2、下面是一个例子,假设数据在 Sheet1 工作表中:

3、例中只用了四列数据,实际使用时可对更多的列进行操作,只要在代码中改变一个变量的值就行了。用鼠标右键点当前工作表下面的标签名 ,选右键快捷菜单中的“查看代码”。

用VBA统计重复数据

5、这时就弹出VBA窗口,将下面代码复制后,粘贴到VBA窗口中,点击“执行”后即可得到统计结果。

6、Sub 统计()y1 = 1 '开始列为A列(在EXCEL中,A列的列号为1)y2 = 4 '结束列为D列(在EXCE讣嘬铮篌L中,D列的列号为4)x = 2n1 = 255 '辅助列n2 = y2+2 '结果显示列,结果显示在源数据列的右侧,中间间隔一列。For i = y1 To y2s = Cells(65536, y1).End(xlUp).Row '各列数据的数量Range(Cells(1, i), Cells(s, i)).Copy Cells(x, n1) '把所有数据复制到辅助列中x = x + sNextCells(1, n1) = "数据": Cells(1, n2 + 1) = "次数"'使用“高级筛选”功能将不重复数据显示在“结果显示列”中Columns(n1).AdvancedFilter 2, , Cells(1, n2), 1s1 = Cells(65536, n2).End(xlUp).Row'下面代码用COUNTIF函数统计重复次数For i = 2 To s1Cells(i, n2 + 1) = WorksheetFunction.CountIf(Columns(n1), Cells(i, n2))Next'消除辅助列内容Columns(n1) = ""End Sub

7、 代码中的含义已经做了批注,大致意思是:将源数据复制到一个辅助列中,对这个辅助列使用高级筛选,得到不重复的数据,使用COUNTIF函数进行统计计数,得到各数据的重复出现次数,最后删除辅助列内容。

用VBA统计重复数据
猜你喜欢