Como encontrar linhas com colunas duplicadas no Excel? [duplicado]

0

Eu tenho uma planilha grande com possíveis linhas duplicadas. No entanto, eu apenas me preocupo com a correspondência de algumas das colunas, conforme destacado em amarelo abaixo.

Então, minha pergunta é: como posso pesquisar por duplicatas em apenas colunas específicas de uma linha e quando eu encontrar uma correspondência, realçá-las?

    
por blarg 02.04.2014 / 11:04

2 respostas

1

Isso faz exatamente o que você quer, com base na captura de tela que você deu

Antes

Depoisdeclicarnobotão"destacar os enganos"

Apartesuperioréobitquevocêpodepersonalizar.Nomomento,euestouolhandoparaColAeB,masvocêpodequereratualizarissoparaolharparaColsBeCouAeDetc.

Tambémfornecidetalheseumlinkparaafetaracordedestaque(maisumavez,vejaoscomentáriosnocódigo)

SubHighlightDuplicates()DimtransparentAsIntegertransparent=-4142DimyellowAsIntegeryellow=27'colourindex,seehttp://dmcritchie.mvps.org/excel/colors.htmformoredetailsaboutsettingthecolourDimcolumn1AsStringcolumn1="A" 'Update me if you don't want to check for dupes in the A column

    Dim column2 As String
    column2 = "B" 'Update me if you don't want to check for dupes in the B column

    Dim endOfRows As Boolean
    moreRows = True

    Dim currentCell As Integer
    currentCell = 0

    Do While (moreRows)

        currentCell = currentCell + 1

        Dim aValue As String
        Dim bValue As String

        aValue = Worksheets("Sheet1").Range(column1 & currentCell).Value
        bValue = Worksheets("Sheet1").Range(column2 & currentCell).Value

        'check it isn't already coloured
        If (Worksheets("Sheet1").Range(column1 & currentCell).Interior.ColorIndex = transparent) Then

            Dim moreInnerRows As Boolean
            moreInnerRows = True

            Dim currentInnerCell As Integer
            currentInnerCell = currentCell

            Dim isDupe As Boolean
            isDupe = False
            'Now to loop through the other rows

            Do While (moreInnerRows)
                currentInnerCell = currentInnerCell + 1

                If (Worksheets("Sheet1").Range(column1 & currentInnerCell).Value = "" And Worksheets("Sheet1").Range(column2 & currentInnerCell).Value = "") Then
                    Exit Do
                End If

                If Worksheets("Sheet1").Range(column1 & currentInnerCell).Value = aValue And Worksheets("Sheet1").Range(column2 & currentInnerCell).Value = bValue Then
                    isDupe = True
                    Worksheets("Sheet1").Range(column1 & currentInnerCell).Interior.ColorIndex = yellow
                    Worksheets("Sheet1").Range(column2 & currentInnerCell).Interior.ColorIndex = yellow

                End If

            Loop

            If (isDupe = True) Then
                'Now we mark the original row as a dupe
                Worksheets("Sheet1").Range(column1 & currentCell).Interior.ColorIndex = yellow
                Worksheets("Sheet1").Range(column2 & currentCell).Interior.ColorIndex = yellow

            End If

        End If

        If (Worksheets("Sheet1").Range(column1 & currentCell).Value = "" And Worksheets("Sheet1").Range(column2 & currentCell).Value = "") Then
            Exit Do
        End If


    Loop

End Sub
    
por 02.04.2014 / 13:23
1

Eu adicionaria uma nova coluna e usaria a coluna CONCATENATE para combinar as colunas 2 e 3. Se sua primeira célula for A1, a fórmula seria:

=CONCATENATE(B1," ",C1)

Em seguida, a partir da faixa de opções Início, eu iria para Formatação Condicional / Realçar Regras de Células / Valores Duplicados.

Aqui está uma foto do resultado final:

    
por 03.04.2014 / 04:39