Como fazer uma procura vertical (vlookup) e concatenar múltiplos valores correspondentes no Excel?
Ao usar a função VLOOKUP no Excel, ela geralmente retornará apenas o primeiro valor correspondente que encontrar para um dado critério de pesquisa. No entanto, há muitos cenários comuns onde você pode precisar recuperar e combinar todos os valores correspondentes associados a uma chave específica, como listar todos os alunos em uma turma ou todos os produtos associados a uma determinada categoria. Como a função VLOOKUP padrão é limitada nesse aspecto, você pode se perguntar como alcançar a capacidade de procurar e concatenar múltiplos resultados correspondentes em uma única célula. Abaixo, exploraremos vários métodos práticos e eficientes para realizar essa tarefa, adequados para diferentes versões do Excel e preferências de usuário.

Procura vertical (Vlookup) e concatenação de múltiplos valores correspondentes no Excel
Procurar verticalmente (Vlookup) e concatenar múltiplos valores correspondentes com as funções TEXTJOIN e FILTER
Se você está usando o Excel 365 ou Excel 2021, a combinação das funções TEXTJOIN e FILTER fornece uma abordagem eficiente baseada em fórmulas para procurar verticalmente e concatenar todos os valores correspondentes. Essa solução é especialmente adequada para conjuntos de dados dinâmicos e atualizados, pois atualizará automaticamente o resultado quando os dados de origem mudarem. É melhor aplicada quando a sua versão do Excel suporta a função FILTER, que é exclusiva das versões mais recentes do Office.
Na célula de destino, insira a seguinte fórmula e, em seguida, arraste a fórmula para baixo se desejar aplicá-la a outras linhas também. Todos os valores correspondentes serão extraídos e combinados em uma célula. Veja a captura de tela:
=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$16, $A$2:$A$16=D2, ""))
- FILTER($B$2:$B$16, $A$2:$A$16=D2, ""): Esta parte da fórmula verifica cada valor em $A$2:$A$16; se ele corresponder ao valor em D2, o valor correspondente em $B$2:$B$16 será incluído no array de resultados.
- $B$2:$B$16: O intervalo de onde os valores correspondentes serão recuperados.
- $A$2:$A$16=D2: A condição sob a qual os valores são selecionados — apenas aquelas linhas onde $A$2:$A$16 for igual ao conteúdo em D2 serão processadas.
- TEXTJOIN(", ", TRUE, ...): Esta função pega a saída da função FILTER (um array de correspondências) e as concatena em uma única sequência de texto, separada pelo delimitador especificado (vírgula e espaço), enquanto ignora automaticamente entradas vazias.
- ", ": Define vírgula e espaço como separador; você pode alterar esse símbolo conforme necessário, por exemplo, use ponto e vírgula ou quebras de linha.
- TRUE: Garante que células vazias sejam ignoradas no processo de combinação, para que você obtenha uma saída formatada de maneira organizada.
Nota especial: Este método requer Excel 365 ou 2021 e não funciona em versões mais antigas (por exemplo, Excel 2019, 2016 ou anteriores). Sempre verifique sua versão do Excel antes de aplicar.
Dica: Se o valor de pesquisa (por exemplo, D2) mudar ou itens correspondentes adicionais forem adicionados à faixa de dados, o resultado será atualizado automaticamente sem etapas extras necessárias.
Limitações potenciais: Em grandes conjuntos de dados, o tempo de cálculo da fórmula pode aumentar. Além disso, os usuários devem garantir que não haja células mescladas nos intervalos de pesquisa ou resultados, pois isso pode causar erros na fórmula.
Procurar verticalmente e concatenar múltiplos valores correspondentes com Kutools para Excel
Se você achar métodos de fórmulas embutidas complicados ou sua versão do Excel não suporta funções avançadas como TEXTJOIN e FILTER, o Kutools para Excel oferece uma solução gráfica amigável ao usuário. O recurso Pesquisa Um-para-Muitos no Kutools permite que você procure e concatene múltiplos resultados correspondentes em poucos passos, tornando-o adequado tanto para iniciantes quanto para usuários avançados. Com o Kutools, não há necessidade de escrever fórmulas ou códigos complicados, e é especialmente útil ao lidar com grandes ou variáveis conjuntos de dados que exigem pesquisas repetidas e agregações.
Após instalar o Kutools para Excel, siga os passos abaixo:
Clique em Kutools > Super PROC > Pesquisa um-para-muitos (retornar vários resultados) para abrir a caixa de configuração. Dentro dessa caixa, você pode configurar rapidamente suas opções de pesquisa e saída usando os seguintes passos:
- Selecione suas células de saída alvo para os resultados concatenados e as células contendo os valores que deseja pesquisar;
- Indique o intervalo da tabela que contém tanto a chave de pesquisa quanto as colunas de resultados;
- Especifique qual coluna contém as chaves de pesquisa (Coluna Chave) e a coluna cujos valores serão concatenados (Coluna de Retorno);
- Clique no botão OK para confirmar suas configurações e processar os dados.
Resultado: O Kutools agora exibirá todos os valores correspondentes e concatenados em sua célula de saída selecionada. Veja a captura de tela:
Este método é altamente recomendado para aqueles que preferem trabalhar a partir da interface do Excel sem fórmulas ou códigos complexos. Ele também reduz a probabilidade de erros de fórmula e melhora a produtividade ao lidar com tarefas repetitivas de pesquisa e concatenação.
Procura vertical e concatenação de múltiplos valores correspondentes com Função Definida pelo Usuário
Para usuários proficientes em VBA (Visual Basic for Applications), ou aqueles que usam versões mais antigas do Excel que não têm suporte para arrays dinâmicos ou função FILTER, você pode criar uma Função Definida pelo Usuário personalizada (UDF) para alcançar a concatenação flexível de múltiplos resultados. Este método é universalmente compatível com todas as versões do Excel e pode ser personalizado para símbolos de separação específicos ou condições.
1. Pressione e mantenha as teclas ALT + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo e cole o seguinte código na Janela de Módulo.
Código VBA: Procurar verticalmente e concatenar múltiplos valores correspondentes em uma célula
Function ConcatenateMatches(LookupValue As String, LookupRange As Range, ReturnRange As Range, Optional Delimiter As String = ", ") As String
'Updateby Extendoffice
Dim Cell As Range
Dim Result As String
Result = ""
For Each Cell In LookupRange
If Cell.Value = LookupValue Then
Result = Result & Cell.Offset(0, ReturnRange.Column - LookupRange.Column).Value & Delimiter
End If
Next Cell
If Result <> "" Then
Result = Left(Result, Len(Result) - Len(Delimiter))
End If
ConcatenateMatches = Result
End Function
3. Salve e feche o editor VBA. Volte para sua planilha e use esta UDF inserindo a fórmula: =ConcatenateMatches(D2, $A$2:$A$16, $B$2:$B$16) em uma célula em branco onde você deseja seu resultado. Arraste a alça de preenchimento para baixo para copiar a fórmula para outras células, conforme necessário. Todos os valores correspondentes com base em um valor específico serão retornados e concatenados em uma célula, separados por vírgula e espaço. Veja a captura de tela:
- D2: O valor de pesquisa a ser correspondido dentro de seu conjunto de dados (LookupValue).
- A2:A16: O intervalo onde a função busca o valor de pesquisa (LookupRange).
- B2:B16: O intervalo contendo os valores a serem concatenados quando o valor de pesquisa corresponde (ReturnRange).
Procura vertical e concatena múltiplos valores correspondentes com código VBA
Para cenários que exigem uso repetitivo ou para aqueles que desejam evitar funções personalizadas nas células da planilha, você pode usar uma macro VBA pronta para concatenar resultados diretamente. Este método funciona bem em ambientes compartilhados onde nem todos os usuários podem ter a mesma versão ou complementos.
1. Clique em Ferramentas de Desenvolvimento > Visual Basic para abrir o editor VBA.
2. Na janela VBA, clique em Inserir > Módulo, depois cole este código no módulo:
Sub VLookupAndConcatenate()
Dim ws As Worksheet
Dim dataRange As Range, lookupRange As Range, resultRange As Range
Dim dict As Object
Dim i As Long, lastRow As Long
Dim lookupValue As Variant, result As String
Dim delimiter As String
delimiter = ", "
Set dict = CreateObject("Scripting.Dictionary")
Set ws = ActiveSheet
On Error Resume Next
Set dataRange = Application.InputBox( _
Prompt:="Please select the data range (contains lookup column and result column)", _
Title:="Select Data Range", _
Type:=8)
On Error GoTo 0
If dataRange Is Nothing Then Exit Sub
On Error Resume Next
Set lookupRange = Application.InputBox( _
Prompt:="Please select the lookup range (single column)", _
Title:="Select Lookup Range", _
Type:=8)
On Error GoTo 0
If lookupRange Is Nothing Then Exit Sub
On Error Resume Next
Set resultRange = Application.InputBox( _
Prompt:="Please select the starting cell for results output", _
Title:="Select Output Location", _
Type:=8)
On Error GoTo 0
If resultRange Is Nothing Then Exit Sub
resultRange.Resize(lookupRange.Rows.Count, 1).ClearContents
For i = 1 To dataRange.Rows.Count
lookupValue = dataRange.Cells(i, 1).Value
If Not dict.Exists(lookupValue) Then
dict.Add lookupValue, dataRange.Cells(i, 2).Value
Else
dict(lookupValue) = dict(lookupValue) & delimiter & dataRange.Cells(i, 2).Value
End If
Next i
For i = 1 To lookupRange.Rows.Count
lookupValue = lookupRange.Cells(i, 1).Value
If dict.Exists(lookupValue) Then
resultRange.Cells(i, 1).Value = dict(lookupValue)
Else
resultRange.Cells(i, 1).Value = "Not Found"
End If
Next i
MsgBox "Operation completed! Processed " & lookupRange.Rows.Count & " lookup values.", vbInformation
End Sub
3. Clique no botão para executar a macro. As caixas de entrada solicitarão que você selecione o intervalo de dados, intervalo de pesquisa, intervalo de resultados. O resultado concatenado é então exibido diretamente nas células de saída selecionadas.
Essa abordagem de macro é particularmente útil se você frequentemente realiza várias buscas de concatenação com diferentes valores, pois evita encher a planilha com chamadas de UDF.
Você pode facilmente ajustar o delimitador no código, se necessário, e estender a macro para gerar resultados em uma célula ou arquivo de acordo com seu fluxo de trabalho.
Concatenar múltiplos valores correspondentes no Excel é possível usando várias abordagens, cada uma com benefícios específicos dependendo da sua situação. Seja você escolher fórmulas de matriz dinâmica, complementos como Kutools para Excel ou métodos baseados em VBA, você melhorará sua capacidade de analisar e exibir dados agrupados de forma eficiente. Dependendo do tamanho e complexidade do seu conjunto de dados, considere qual abordagem oferece o melhor desempenho e facilidade de manutenção para você ou sua equipe. Nas operações diárias, verifique a consistência dos dados, evite células mescladas e verifique os intervalos de referência para obter os melhores resultados. Se você encontrar erros nos cálculos da fórmula, verifique novamente se seus intervalos correspondem aos dados e se você está usando o método correto de entrada da fórmula para sua versão do Excel.
Para técnicas mais avançadas do Excel e uma ampla gama de guias práticas de como fazer, visite nossa extensa biblioteca de tutoriais.
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. 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...
Office Tab traz interface de abas para o Office e facilita muito 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 da mesma janela, em vez de novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!