Como comparar valores separados por vírgula em duas células e retornar valores duplicados ou únicos no Excel?
Como mostrado na captura de tela abaixo, existem duas colunas - Coluna1 e Coluna2, cada célula na coluna contém números separados por vírgula. Para comparar os números separados por vírgula na Coluna1 com o conteúdo da célula na mesma linha da Coluna2 e retornar todos os valores duplicados ou únicos, o que você poderia fazer?
Este tutorial fornece dois métodos para ajudá-lo a realizar essa tarefa.
Comparar valores separados por vírgula em duas células e retornar valores duplicados ou únicos com fórmulas
Esta seção fornece duas fórmulas para ajudar a comparar os valores separados por vírgula em duas células e retornar os valores duplicados ou únicos entre elas.
Observação: As fórmulas a seguir funcionam apenas no Excel para 365. Se você estiver usando outras versões do Excel, tente usar o método VBA abaixo.
Tomando as duas colunas acima como exemplo, para comparar os números separados por vírgula na Coluna1 com os números separados por vírgula na mesma linha da Coluna2 e retornar valores duplicados ou únicos, proceda da seguinte forma.
Retornar valores duplicados
1. Selecione uma célula para exibir os números duplicados entre as duas células especificadas com números separados por vírgula; neste caso, seleciono a célula D2, depois insira a fórmula abaixo e pressione a tecla Enter. Selecione a célula da fórmula e arraste sua Alça de Preenchimento Automático para baixo para obter os números duplicados entre as células nas outras linhas.
=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))
Retornar valores únicos
Para retornar os números únicos entre as duas células especificadas com números separados por vírgula na mesma linha, a seguinte fórmula pode ajudar.
1. Selecione uma célula para exibir os números únicos; neste caso, seleciono a célula E2, depois insira a fórmula abaixo e pressione a tecla Enter. Selecione a célula da fórmula e arraste sua Alça de Preenchimento Automático para baixo para obter os números únicos entre as células nas outras linhas.
=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))
Notas:

Desbloqueie a Magia do Excel com o Kutools AI
- Execução Inteligente: Realize operações de células, analise dados e crie gráficos — tudo impulsionado por comandos simples.
- Fórmulas Personalizadas: Gere fórmulas sob medida para otimizar seus fluxos de trabalho.
- Codificação VBA: Escreva e implemente código VBA sem esforço.
- Interpretação de Fórmulas: Compreenda fórmulas complexas com facilidade.
- Tradução de Texto: Supere barreiras linguísticas dentro de suas planilhas.
Comparar duas colunas com valores separados por vírgula e retornar valores duplicados ou únicos com VBA
A função definida pelo usuário fornecida nesta seção ajuda a comparar os valores separados por vírgula em duas células especificadas e retornar os valores duplicados ou únicos entre elas. Proceda da seguinte forma.
Tomando o mesmo exemplo acima, para comparar os números separados por vírgula na Coluna1 com os números separados por vírgula na mesma linha da Coluna2 e retornar valores duplicados ou únicos, experimente a função definida pelo usuário nesta seção.
1. Na pasta de trabalho aberta, pressione as teclas Alt + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Na janela Microsoft Visual Basic for Applications, clique em Inserir > Módulo e copie o seguinte código VBA na janela Módulo (Código).
Código VBA: Comparar valores separados por vírgula em duas células e retornar valores duplicados/únicos
Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
Dim R1Arr As Variant
Dim R2Arr As Variant
Dim Ans1 As String
Dim Ans2 As String
Dim Separator As String
Dim d1 As New Dictionary
Dim d2 As New Dictionary
Dim d3 As New Dictionary
Application.Volatile
Separator = ", "
R1Arr = Split(Rng1.Value, Separator)
R2Arr = Split(Rng2.Value, Separator)
Ans1 = ""
Ans2 = ""
For Each ch In R2Arr
If Not d2.Exists(ch) Then
d2.Add ch, "1"
End If
Next
If Op Then
For Each ch In R1Arr
If d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans1 = Ans1 & ch & Separator
End If
End If
Next
If Ans1 <> "" Then
Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
End If
COMPARE = Ans1
Else
For Each ch In R1Arr
If Not d1.Exists(ch) Then
d1.Add ch, "1"
End If
Next
For Each ch In R1Arr
If Not d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
For Each ch In R2Arr
If Not d1.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
If Ans2 <> "" Then
Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
End If
COMPARE = Ans2
End If
End Function
3. Após colar o código na janela Módulo (Código), vá em Ferramentas > Referências para abrir a janela Referências – VBAProject, marque a caixa Microsoft Scripting Runtime e clique no botão OK.
4. Pressione as teclas Alt + Q para fechar a janela Microsoft Visual Basic for Applications.
5. Agora você precisa aplicar duas funções separadamente para retornar os valores duplicados e únicos de duas células com valores separados por vírgula.
Retornar valor duplicado
Selecione uma célula para exibir os números duplicados; neste exemplo, seleciono a célula D2, depois insira a fórmula abaixo e pressione a tecla Enter para obter os números duplicados entre as células A2 e B2.
Selecione a célula da fórmula e arraste sua Alça de Preenchimento Automático para baixo para obter os números duplicados entre as células nas outras linhas.
=COMPARE(A2,B2,TRUE)
Retornar valores únicos
Selecione uma célula para exibir os números únicos; neste exemplo, seleciono a célula E2, depois insira a fórmula abaixo e pressione a tecla Enter para obter os números únicos entre as células A2 e B2.
Selecione a célula da fórmula e arraste sua Alça de Preenchimento Automático para baixo para obter os números únicos entre as células nas outras linhas.
=COMPARE(A2,B2,FALSE)
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!