Eu tenho uma planilha do Excel que contém linhas duplicadas
Desejo remover uma linha se suas colunas ACDEF forem iguais (ignore B ao calcular duplicatas, mas remova-a ao remover uma linha)
No momento, ele ignora B durante a comparação e a exclusão.
Eu tenho uma planilha do Excel que contém linhas duplicadas
Desejo remover uma linha se suas colunas ACDEF forem iguais (ignore B ao calcular duplicatas, mas remova-a ao remover uma linha)
No momento, ele ignora B durante a comparação e a exclusão.
Respostas:
No Excel 2013
Feito
Se eu entendi corretamente, dadas as linhas 1 e 2, você deseja excluir uma linha 2 se e somente se A1 = A2, C1 = C2, D1 = D2, E1 = E2 e F1 = F2.
Isto é o que eu vim com. Provavelmente poderia ser mais curto, mas funciona:
Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
current = ActiveCell.Address
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.Value <> ""
If ((ActiveSheet.Range(current).Value = ActiveCell.Value) And (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).Value)) Then
ActiveSheet.Rows(ActiveCell.Row).Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub
O que isso faz é percorrer todas as linhas restantes usando o ActiveCell como um ponteiro para a linha que está sendo avaliada e armazenando a célula da linha "original" na variável atual . Quando o loop termina, a célula abaixo da corrente é ativada e o loop de avaliação interna é iniciado novamente.
Se eu errei em algum lugar, não hesite em me dizer :)
Adicione esta fórmula em cada linha, por exemplo; na coluna G:
=IF(AND(A2=C2,A2=D2,A2=E2,A2=F2),"DELETE ME","")
Isso dará um resultado como:
A B C D D F G
- - - - - - -
x o x x x x DELETE ME
x x x x x o
x x x x x x DELETE ME
x o o x x x
Em seguida, crie um filtro na coluna G para as linhas que dizem 'DELETE ME' e exclua-as.
@ Garrulinae
Eu usei sua ideia como inspiração. Eu tinha muitas linhas e o que eu queria era excluir as linhas que continham valores duplicados de uma coluna. Se eu usar Remover duplicatas nessa coluna, ele removerá apenas os dados dessa coluna e não a linha inteira. Eu queria excluir todas as linhas 2 e 3 da tabela inteira. Então, o que eu fiz, criei uma nova coluna e deixei o valor da primeira linha vazio, coloque delete me na segunda e terceira linha. E, em seguida, copiei apenas os valores das três primeiras linhas dessa coluna em particular (não a linha inteira) e colei sobre toda a coluna da tabela. Agora, eu tinha "me excluído" em cada segunda e terceira linha da coluna inteira. Então eu só tenho que classificar os valores dessa coluna e excluir todas as linhas que contêm delete me. Você pode usar a mesma solução se desejar excluir todos os segundo, terceiro e quarto ou segundo, terceiro, quarto e quinto anos ou mais ...
Espero que ajude alguém ....