Remove duplicados após a filtragem

0

Depoisdeusarestafórmula=IF(ISERROR(MATCH(A2,B:B,0)),A2,"") na coluna C, ela filtra os números da lista negra.

Mas eu preciso de conselhos para um passo adiante: como faço para remover duplicatas?

    
por user245491 17.08.2013 / 19:13

4 respostas

1

Tente usar o filtro avançado conforme descrito pela Microsoft: link

Para criar uma lista compilada de registros exclusivos, siga estas etapas:

  1. Selecione os títulos das colunas acima das linhas ou registros que você deseja classificar.

  2. No menu Dados, aponte para Filtrar e clique em Filtro Avançado. Se você for solicitado da seguinte maneira, clique em OK. Nenhum cabeçalho detectado. Suponha que a linha superior da seleção é linha de cabeçalho?

  3. Em Ação, clique em Copiar para outro local.

  4. Clique para selecionar a caixa de seleção Somente registros exclusivos.

  5. Na caixa Intervalo de lista, digite ou selecione o intervalo de registros (como A3: H10).

  6. Na caixa Intervalo de critérios, digite ou selecione o mesmo intervalo de registros (isto é, A3: H10)

  7. Na caixa Copiar para, digite o endereço ou selecione a primeira célula onde você deseja que as informações sejam colocadas. Certifique-se de que existe espaço suficiente para que você não sobrescreva dados pré-existentes.

    Tenha em mente que você só pode fazer isso na planilha ativa.

  8. Clique em OK.

Notas

Se o primeiro registro de dados originais for duplicado, ele aparecerá duas vezes na nova lista. Apenas esconda a primeira linha.

Se você executar o comando Filtro Avançado no local, a planilha ainda conterá todos os registros. Registros duplicados estão ocultos. Para contornar esse comportamento, aponte para linhas no menu Formatar e, em seguida, clique em Reexibir.

    
por 17.08.2013 / 19:43
0

Código original (para remover duplicatas de uma coluna: link )

'Remove duplicates from SORTED list
Sub getDistinct()
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Select
            Selection.Delete Shift:=xlUp
        Else
            ActiveCell.Offset(1, 0).Activate
        End If
    Loop
End Sub

Modificação

Na linha If ActiveCell.Value = ActiveCell.Offset(1, 0).Value , a macro verifica se a próxima célula abaixo da atual tem o mesmo valor. Se sim, apaga o atual e passa para a próxima célula.

Você pode adicionar uma segunda condição à instrução IF, para que também apague as células que estão na sua lista negra. Aqui está o pseudocódigo.

if ActiveCell = NextCell OR ActiveCell = FoundinBlacklist then delete Activecell

Código final

Sub getDistinct()
    Do While ActiveCell.Value <> ""
        On Error Resume Next
        Set foundit = Range("B2:B7").Find(ActiveCell, lookat:=xlWhole)
        On Error GoTo 0
        If ActiveCell = ActiveCell.Offset(1, 0) Or Not foundit Is Nothing Then
            ActiveCell.Select
            Selection.Delete Shift:=xlUp
        Else
            ActiveCell.Offset(1, 0).Activate
        End If   
    Loop
End Sub

Notas

  1. Para usar macros VBA, vá para Developer » Visual basic »cole o código em algum lugar
  2. Tenha em mente que esse código funciona apenas para listas classificadas. Então, classifique sua coluna de dados antes.
  3. Você tem que colocar o cursor no início da sua lista e executar a macro via Alt + F8
  4. Você precisa alterar Range("B2:B7") de acordo com o intervalo de sua própria lista negra
  5. Você pode mudar facilmente da lista de bloqueio para o conceito de lista de desbloqueio removendo Not de Not foundit Is Nothing
por 18.08.2013 / 11:59
0

Você pode alterar a fórmula para:

=IF(ISNA(MATCH(A2,B:B,0)) * ISNA(MATCH(A2,C$1:C1,0)),A2,"")

Não exibirá registros duplicados. Você pode usar o AutoFiltro, excluindo (Blanks) , e copiar e colar valores em uma nova planilha.

    
por 20.08.2013 / 19:19
0

Faça o seguinte:

  1. Escreva esta fórmula em B2 & preenchê-lo.

    = Countif (A $ 2: A2, A2)

  2. A função
  3. Counif gerará uma lista de 1's & 2's , agora você precisa excluir as linhas para as quais a contagem é maior que 1 .

  4. Clique no botão Filter no Data Tab para aplicar o Autofilter .

  5. A partir de column B , selecione linhas que não sejam iguais a 1 .

  6. Você pode então excluir essas linhas marcando-as e selecionando Delete Rows .

  7. Por fim, remova o Filter & você ficará com números de células exclusivas.

por 21.09.2018 / 07:53