Excel将“每行”数据中的重复值批量删除,不会这个技巧,工作可能要累爆!
Excel情报局
Excel职场联盟
前言|职场实例
我们都了解,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单元格的起始位置。根据实际情况而更改。
赞 (0)