【发布时间】:2014-11-30 14:27:54
【问题描述】:
我有一个包含多个电子表格的 Excel 工作表。每个电子表格中有大约 1000 行的“名字”和“姓氏”列。我录制了一个宏,它显示了格式为“firstname lastname”的重复行。
=IF(SUMPRODUCT(($B$2:$B$1000=B2)*1,($C$2:$C$1000=C2)*1)>1,"Duplicates","No duplicates")
上面的公式可以在一张表中找到重复的行。如何调整公式,使其也可以与其他表格匹配。公式或 VBA 也可以。
【问题讨论】:
-
对于 2007 或更高版本的 Excel,您现有的公式会更好地使用效率更高的 COUNTIFS() 函数,如下所示:
=IF(COUNTIFS(B:B, B2, C:C, C2)-1, "Duplicates", "No duplicates")。无需担心完整的列引用,因为它只会处理您的数据范围,而不是SUMPRODUCT(...)逐字处理每个单元格范围引用。不幸的是,您不能简单地将多个工作表引用添加到Sheet1:Sheet3!B:B等条件范围。 -
@Jeeped 感谢您提供 COUNTIFS() 函数。它更小、更清洁、更高效。除了 COUNTIFS() 之外,我还可以使用任何其他函数,以便也可以从另一张表中找到重复项。
-
Excel 中没有本机函数可以接受通常称为 3D 范围参考(即多个工作表上的一个或多个单元格的范围)中的标准。如果您只有几个工作表要查看,我建议您简单地将几个
COUNTIFS(...)添加在一起。如果您有多个,那么 UDF 可能是更好的途径。 -
@Jeeped 谢谢你的帮助。
标签: excel duplicates rows