Excel: remova linhas com duplicatas na coluna B, com base nos dados da Coluna A

1

Eu preciso encontrar duplicatas na coluna B; e, em seguida, exclua a linha inteira se o valor na coluna A for o número 4. Existem linhas que precisam ser mantidas e ter "4" na coluna A.

A  B
1, John
4, John
1, Mary
4, Mary
1, Aaron
1, Scott
4, Jeff
4, Bob

Deve ficar assim quando terminar:

A  B
1, John
1, Mary
1, Aaron
1, Scott
4, Jeff
4, Bob
    
por AaronJAnderson 13.07.2011 / 05:27

2 respostas

1

Tente isso. Observe que você precisa alterar o nome da planilha e o endereço da célula superior esquerda para corresponder aos seus dados.

Sub RemoveRows()
    Dim rng1 As Range, sht1 As Worksheet
    Dim iRow As Long

    'Change sheet name and top-left cell address to match your data.
    Set sht1 = Sheets("Sheet1")
    Set rng1 = sht1.Range("A1")

    For iRow = rng1.End(xlDown).Row To rng1.Row Step -1
        If Cells(iRow, 1) = 4 Then
            If Application.WorksheetFunction.CountIf(rng1.Resize(rng1.End(xlDown).Row, 1).Offset(0, 1), Cells(iRow, 2)) > 1 Then
                Cells(iRow, 1).EntireRow.Delete
            End If
        End If
    Next iRow
End Sub
    
por 13.07.2011 / 15:43
1

Com uma coluna auxiliar e uma tabela dinâmica, consegui o resultado desejado. Eu assumi que os únicos valores na coluna A podem ser 1 ou 4. (Talvez seja uma suposição ruim ???)

Em C1, eu coloquei um nome de coluna "nameID".

Em C2, eu coloquei o valor 1.

No C3, eu coloquei essa fórmula e copiei tudo:

 =IF(B3=B2,C2,C2+1) 

Em seguida, girei os dados nas colunas A: C, escolhendo o "min" da opção "a":

Por fim, ao lado da tabela dinâmica, eu escrevi essa fórmula de concatenação, supondo que a primeira célula dinâmica seja F3:

 =H3 & ", " & G3

Talvez essa captura de tela possa ajudar a esclarecer. O resultado final está na coluna J:

    
por 13.07.2011 / 15:44