使用2列删除重复项

时间:2015-06-30 08:37:48

标签: excel vba excel-vba

我正在尝试删除工作表中的重复ID。例如,这里有几行数据

ID   |  Department |  Sales   | Update Date
1    | Sales       | 100      | 
2    | Marketing   | 100      | 
2    | Marketing   | 200      | 30/06/2015
2    | Marketing   | 300      | 05/07/2015

我想删除重复的ID,但是在更新日期列的基础上。所以我想只留下以下内容:

ID   |  Department |  Sales   | Update Date
1    | Sales       | 100      | 
2    | Marketing   | 300      | 05/07/2015

因此它会检查该ID的最新更新行并删除其他行。

任何关于使用VBA或宏来执行此操作的建议都会很棒,因为它将构成自动脚本的一部分。

1 个答案:

答案 0 :(得分:1)

实现您想要做的事情的一种方法是读取所有行并遍历每个重复的行,找到要保留的内容,基于查找最高update_date要删除的内容。

我已成功写了一个宏来做到这一点。这是我的代码:

首先:在VBA编辑器中创建一个空白模块并粘贴以下代码:

n1, n2, n3, ...nN = [i.contents[0].strip() for i in soup.select('td.first')]

以下是它的样子:screenshot of excel result

如果您愿意,我已附上整个工作手册供您参考:remove_Duplicates.xlsm