作者:乔山办公网日期:
返回目录:excel表格制作
ALT+F11,在VBE窗口中插入模块,粘贴以下代码。
回到Excel界面,ALT+F8,运行7a686964616fe59b9ee7ad94362下面这个宏。
Sub 这个宏()
Dim Arr, d As Object, Brr(), crr, sh As Worksheet
t = Timer
Arr = ActiveSheet.[a1].CurrentRegion
ReDim Brr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(Arr, 1)
For j = 1 To UBound(Arr, 2)
If Arr(i, j) <> "" Then d(Arr(i, j)) = ""
Next j
crr = d.keys
For j = 0 To UBound(crr)
Brr(i, j + 1) = crr(j)
Next
d.RemoveAll
Next i
Set sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
sh.Name = "去重结果"
sh.[a1].Resize(UBound(Arr, 1), UBound(Arr, 2)) = Brr
MsgBox "处理完成!用时" & Timer - t & "秒!"
End Sub
针对图上的数据,删除每行的重复项,我的想法是,先转置,再使用来 EXCEL 自带的删除重复项功能。
转置。
A 可以使用transpose函数。
B 复制粘贴数据,粘自贴选项选择转置。
分别选择每一列删除重复项。
数据选项卡——删除重复项——只选择一列。
如果选择多列,就是两列都相同会被删除。
希望可以帮到你,有问题欢zd迎追问。
用公式可以简单解决!举例如下
新建3列,zd是电话2~4
E2=IF(B2="","",IF(COUNTIF($A2:A2,B2)>0,"",B2))
然后下拉公式,到其他区版域。得到去重了的电话2~4
然后复制 E~G列,黏贴替换B-D列,完成 同行权去重