识别并删除单行中的重复值

识别并删除单行中的重复值

我有一张 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")

相关内容