比较和提取行

时间:2014-10-03 10:17:01

标签: excel excel-vba vba

在我的工作簿中,我有许多包含客户数据的表格。这些工作表从大量主数据中提取,并根据缺少电子邮件地址,电话号码或部门代码的记录等因素进行拆分。

我需要防范的是多张中包含的那些记录,我需要能够确认每条记录只在不同的工作表中出现一次。有没有办法比较工作表中的客户编号(所有工作表中的第一列),精确定位重复项并自动删除这些工作簿中每个客户的一个实例?

1 个答案:

答案 0 :(得分:-1)

是的,有:)。通常我们在这里帮助解决问题而不是编写完整的解决方案,所以我将为您分享我推荐的解决方案。

由于您的数据可能很好地构建,而不是编写一长串VBA,因此使用SQL语句,例如

SELECT S1.Col1 FROM [Sheet1$] AS S1, [Sheet2$] AS S2 WHERE S1.Col1 = S2.COL2

您可以使用union语句将其扩展到其他工作表。像这样:

SELECT S1.Col1 FROM [Sheet1$] AS S1, [Sheet2$] AS S2 WHERE S1.Col1 = S2.COL2
UNION ALL
SELECT S1.Col1 FROM [Sheet1$] AS S1, [Sheet2$] AS S3 WHERE S1.Col1 = S3.COL2

获取在表1和表2-3之间重复的ID列表。

如何在Excel中使用SQL?查看我的加载项:http://blog.tkacprow.pl/excel-sql-add-in-free/ 或使用Microsoft Query(数据 - >外部数据等)。

然后删除重复项使用一些VBA循环遍历要删除的记录并删除它们。