不知何故,经过几天的googleing,我没有找到任何令人满意的答案。 我必须在同一列中找到重复项并将它们(或更多)复制到新工作表中以显示问题所在。
我设法做到的唯一方法是
For i = 2 To lastCell
If dataArray(i, 3) <> "" Then
For j = i + 1 To lastCell
If dataArray(i, 3) = dataArray(j, 3) Then
results.Range("A" & k & ":" & lastCol & k).Value = checkbook.Range("A" & i & ":" & lastCol & i).Value '
results.Range(commentAddress & k).Value = "Duplicate ID"
k = k + 1
results.Range("A" & k & ":" & lastCol & k).Value = checkbook.Range("A" & j & ":" & lastCol & j).Value
results.Range(commentAddress & k).Value = "Duplicate ID"
k = k + 1
End If
Next j
End If
Next I
但这花了太长时间!我发现字典可能非常有用但不知道如何使用它 - 它只显示SECOND值(我需要两者)
那么有没有其他解决方案可以找到重复项?我需要最快的一个,因为我正在处理的文件有100K +行(循环中的循环正在杀死我)
答案 0 :(得分:0)
你可以尝试类似的东西来重新创建用空格代替重复值的列。然后,您可以只过滤列中的空白值,以查找哪些值或ID是重复的。或者编写一个循环遍历列的公式,并收集空单元格的地址。
=IF(A1="";"";IF(COUNTIF(A1:A100;A1)=1;A1;""))
将A1:A100替换为您的数据所占的范围,如果您愿意,则替换整列。