我有一张 30,000 行的表格。我需要找出同一行中多个列中的重复值。例如
Row 1: 1234 5678 2345 7586 1234 2345
我有 30,000 个类似的行。
我需要识别然后删除重复的值,因此在这种情况下,例如,我只需要保留 1234 和 2345 的一个条目并删除重复的条目。
这个怎么做?
答案1
您可以使用辅助列。对于您给出的示例,请使用以下公式G1
:
=IF(COUNTIF($A1:A1,A1)=1,A1,"")
...然后将其复制到H1:L1
。如果您的行并非都具有相同数量的记录,则可以更改公式以解决任何空白单元格:
=IF(A1="","",IF(COUNTIF($A1:A1,A1)=1,A1,""))
另一种 VBA 方法是:
Option Explicit
Function RemoveDuplicatesInRows(dataRange As Range)
Dim r As Long
Dim c As Long
Dim s As String
For r = 1 To dataRange.Rows.Count
s = ""
For c = 1 To dataRange.Columns.Count
If InStr(1, s, "|" & dataRange.Cells(r, c).Value & "|") > 0 Then
dataRange.Cells(r, c).Value = ""
Else
s = s & "|" & dataRange.Cells(r, c).Value & "|"
End If
Next
Next
End Function
...可以在 VBA 中的其他地方调用,如下所示:
RemoveDuplicatesInRows Sheet1.Range("A1:F30")