搜索
写经验 领红包
 > 社会

删除每列重复值(如何将一列数据中重复的删除)

导语:Excel将“每列”数据中的重复值批量删除,职场高效技巧

前言|职场实例

如下图所示:

如何将左表A列B列C列每列中的重复值去掉呢?即变成右表的形式呢?

有的小伙伴肯定会想到:

分别选中每一列,点击“数据”菜单,点击“删除重复项”。可是如果列数达到成百上千,我们总不能傻傻的一列一列的点击删除吧!

那么用Ctrl键快速分别同时选中A列B列C列,然后再点击“删除重复项”,是不是还可以快点呢?但是Excel连这个机会也不给我们,这时候会提示错误:不能对多重选择区域执行此操作。

步骤|解决方案

我们可以选中A1:C7单元格数据区域,右击复制这块区域,点击其他任意单元格,右击“选择性粘贴”,选择“转置”功能,点击“确定”,即可转置成横向显示。我们这时可以将A1:C7数据区域先删除掉了。

右击工作表名称标签,点击“查看代码”,在弹出的VBA窗口中,复制粘贴代码,然后点击“运行”按钮,点击运行按钮下的“运行子过程/用户窗体”选项,最后点击关闭VBA窗口,当界面回到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)) = brrEnd Sub

注意:

本段代码中[a1:g3]代表的意思是:数据源的区域范围,本例中数据源即需要去重复的数据在a1:g3区域。根据实际情况而更改。

本段代码中 [a5]代表最终完成的数据存放的起始位置,本例中存放在了A5单元格的起始位置。根据实际情况而更改。

最后将去重以后的A5:E7区域选中,右击复制这块区域,点击其他任意单元格,右击选择性粘贴,选择转置功能,点击确定,即可转置成竖向显示。我们就最终完成了目的。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小故创作整理编辑!