Identifique e exclua valores duplicados em uma única linha

0

Eu tenho uma tabela de 30.000 linhas. Preciso descobrir valores duplicados em várias colunas, mas nas mesmas linhas. Por exemplo

Row 1:     1234       5678       2345     7586   1234    2345 

Eu tenho 30.000 linhas semelhantes.

Eu preciso identificar e, em seguida, excluir valores duplicados, portanto, neste caso, por exemplo, preciso manter apenas uma entrada de 1234 e 2345 e excluir as entradas duplicadas.

Como fazer isso?

    
por Max 18.02.2015 / 18:28

1 resposta

0

Você pode usar colunas auxiliares. Para o exemplo que você deu, use essa fórmula para G1 :

=IF(COUNTIF($A1:A1,A1)=1,A1,"")

... e copie isso para H1:L1 . Se as suas linhas não tiverem o mesmo número de registros, você poderá alterar a fórmula para endereçar todas as células em branco:

=IF(A1="","",IF(COUNTIF($A1:A1,A1)=1,A1,""))

Uma abordagem alternativa de VBA seria:

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

... que pode ser chamado em algum outro lugar no VBA com algo assim:

RemoveDuplicatesInRows Sheet1.Range("A1:F30")
    
por 18.02.2015 / 20:08