Excel中多行多列数据去重有高招

2023-01-30   电脑爱好者

原标题:Excel中多行多列数据去重有高招

一些数据会重复出现在表格的不同行列中。如老师任课表,由于一些老师会在多个班级任教,因此其姓名会在表中重复出现,现在需要将所有一线任课老师的姓名从表中提取出来,这就会涉及去重问题。如何实现去重呢?下面笔者以Excel 2019为例介绍具体的操作方法。假设学校无重名的老师,若有则需要先标注以示区别(如张三1,张三2)。

文| 俞木发

方法1. 删除重复值法

用Excel内置的“删除重复值”去重很方便。不过,这个方法要求数据均在一列才行。因此对于多行多列的数据,需要先将去重数据归集在一列中。比如下面是某校老师任课表,现在需要在J列中列出所有任课老师的去重名单(图1)。

(图1)

定位到B10单元格并输入公式“=C2”,然后向右填充到H10单元格,选中B10:H10数据区域,向下填充公式,直到B列单元格中出现数字0为止,这样在B列中便可以引用全部老师的姓名(图2)。

(图2)

公式解释:

这里使用“=”在B10单元格中开始引用下一列的数据,公式下拉后B10:H10就会依次引用各自下一列的数据,直到没有数据为止(单元格显示0),所以最终在B列中可以引用所有任课老师的数据。

继续选中B2:B57区域(总共56条数据,B58单元格中的数字为0)中的数据并复制,接着定位到J2单元格,依次点击“开始粘贴值”,选中J列中的数据,依次点击“数据删除重复值”,在弹出的窗口中勾选“列J”,点击“确定”(图3)。

(图3)

这样J列中的重复值就自动被剔除,在该列中就可以保留不重复的老师名单了(图4)。如果后续名单发生了变化,只要重复上述操作,然后再次执行去重操作即可。

(图4)

方法2. 函数法

上述方法是手动去重,如果名单发生变化,还需要再次去重。如果要实现去重的自动化,可以借助于函数来实现。

(图5)

公式解释:

(图6)

公式解释:

方法3. VBA法

多行多列数据去重,实际操作是先将数据组成一列,然后去重,在VBA中可以借助于RemoveDuplicates函数来快速实现。

先到“https://share.weiyun.com/BYDj7Qhx”下载所需的代码,接着按下“Alt+F11”快捷键打开VBA编辑窗口,依次点击“插入模块”,将下载的代码粘贴到代码框中(图7)。

(图7)

代码解释:

先设置行列变量,列内容是第2列第8列(即B:H列),行内容是第2行第9行(请根据实际单元格内容设置)。然后遍历这些行列中的内容,将其提取到I列中保存,最后使用RemoveDuplicates函数对I列的内容去重。

返回到Excel窗口中,依次点击“开发工具宏去重”,点击“执行”,这样VBA代码就会将所有老师的数据复制到I列并完成去重操作了(图8) CF

(图8)

原文刊登于2022 年 10 月 1 日出版《电脑爱好者》第 19 期

END

更多精彩,敬请期待……