Caso você esteja se perguntando como comparar 2 colunas de dados com linhas em milhões e extrair os valores únicos entre ambas as colunas, então você deve ler este artigo. Usaremos o código VBA para comparar duas colunas de dados e mostrar a diferença nas próximas duas colunas.
Pergunta: Existem vários valores nas colunas A e B. Quero uma macro para verificar mais de 40 k linhas de dados em ambas as colunas e, em seguida, extrair a lista de entradas exclusivas de cada coluna para a próxima coluna, ou seja, colunas C & D respectivamente. Neste exemplo, estou pegando apenas 40 linhas de dados de amostra.
Você pode encontrar a pergunta original aqui
A seguir está o instantâneo dos dados:
Para comparar a lista de duas colunas, precisamos seguir as etapas abaixo para iniciar o editor VB:
- Clique na guia Desenvolvedor
- No grupo Código, selecione Visual Basic
- Copie o código abaixo no módulo padrão
Sub PullUniques () Dim rngCell As Range Para Cada rngCell In Range ("A2: A40") If WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Then Range ("C" & Rows.Count). End (xlUp) .Offset (1) = rngCell End If Next para cada rngCell no intervalo ("B2: B40") If WorksheetFunction.CountIf (Range ("A2: A40"), rngCell) = 0 Then Range ("D" & Rows.Count) .End (xlUp) .Offset (1) = rngCell End If Next End Sub
- A macro acima está configurada para ser executada; Podemos pressionar a tecla F5 - se você estiver na Tela do Editor do Visual Basic - ou podemos usar as teclas de atalho “ALT + F8”, selecione sua macro e clique no botão Executar
- A lista única das colunas A e B será gerada automaticamente nas colunas C e D
Explicação do código:
No código acima, usaremos a função IF junto com o loop For para obter o resultado.
- Declaramos Dim rngCell As Range; o objetivo de declarar rngCell como intervalo é que queremos atribuir ao intervalo de amostra "A2: A40" um nome específico, ou seja, "rngCell" em nosso exemplo
- Para cada rngCell no intervalo ("A2: A40"); vamos verificar cada célula em “rngCell” com uma condição
- If WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Then; esta linha de código está usando a função COUNTIF VBA para verificar o intervalo de critérios B2: B40 com os critérios rngCell igual a zero, então na coluna C, o valor armazenado em rngCell será salvo
- Da mesma forma, iremos executar For Each Loop para a coluna B e extrair os valores únicos na coluna D
Conclusão: Podemos obter a lista única de texto ou valores de cada uma das colunas; o nome do cabeçalho da coluna C (resultados - existe na lista 1, mas não na lista 2) e coluna D (resultados - existe na lista 2, mas não na lista 1). Caso tenhamos um requisito semelhante, mas o número de colunas seja maior do que dois, precisamos ajustar o código para obter o resultado.
Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos em site de email