excel怎么删除所有重复值(Excel将每行数据中的重复值批量删除)
excel怎么删除所有重复值(Excel将每行数据中的重复值批量删除)Sub test() Dim arr i j k n arr = [a1:g3].Value ReDim brr(1 To UBound(arr 1) 1 To UBound(arr 2)) For i = 1 To UBound(arr 1) n = 0 For j = 1 To UBound(arr 2) For k = 1 To j - 1 If arr(i j) = arr(i k) Then Exit For Next If k = j Then n = n 1: brr(i n) = arr(i j) End If Next Next [A5].Resize(UBound(brr 1) UBound(brr 2)) = brr End Sub注意:代码模板如下,复制粘贴即用:我们
前言|职场实例
我们都了解,Excel中的“删除重复值”功能只能针对某列竖向的数据下的重复值。如下图所示,如果每行数据中存在重复值,该如何横向按行批量删除重复值呢,删除完成后,将唯一值规则的放在指定的区域中。
步骤|解决方案
小编查阅了大量的资料。这个问题还是有一定的难度的。如果这种问题在工作中真的遇到,且数据量很大的情况下,确实令人很棘手。
我们可以用VBA代码的方法轻松瞬间完成。这个代码是固定的模板,我们只需要复制粘贴即可使用。
右击工作表名称标签,点击“查看代码”,在弹出的VBA窗口中,复制粘贴代码,然后点击“运行”按钮,点击运行按钮下的“运行子过程/用户窗体”选项,最后点击关闭VBA窗口,当界面回到Excel主界面时,我们发现横向按行批量删除重复值的结果已经出来了。
小编计算了一下时间,用复制VBA代码的方法完成这个难题也不过5秒钟的事儿!
代码模板如下,复制粘贴即用:
Sub test()
Dim arr i j k n
arr = [a1:g3].Value
ReDim brr(1 To UBound(arr 1) 1 To UBound(arr 2))
For i = 1 To UBound(arr 1)
n = 0
For j = 1 To UBound(arr 2)
For k = 1 To j - 1
If arr(i j) = arr(i k) Then Exit For
Next
If k = j Then
n = n 1: brr(i n) = arr(i j)
End If
Next
Next
[A5].Resize(UBound(brr 1) UBound(brr 2)) = brr
End Sub
注意:
本段代码中[a1:g3]代表的意思是:数据源的区域范围,本例中数据源即需要去重复的数据在a1:g3区域。根据实际情况而更改。
本段代码中 [a5]代表最终完成的数据存放的起始位置,本例中存放在了A5单元格的起始位置。根据实际情况而更改。