У меня есть таблица из 30000 строк. Мне нужно найти повторяющиеся значения в нескольких столбцах, но в тех же строках. Например

Row 1:     1234       5678       2345     7586   1234    2345 

У меня 30 000 похожих строк.

Мне нужно идентифицировать, а затем удалить повторяющиеся значения, поэтому в этом случае, например, мне нужно сохранить только одну запись из 1234 и 2345 и удалить дублирующиеся записи.

Как это сделать?

1 ответ1

0

Вы можете использовать вспомогательные столбцы. Для приведенного вами примера используйте эту формулу для 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")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .