Tag Archives: Concatenar

Excel – Como Juntar/Unir/Concatenar texto no Excel

Existem algumas formas de trabalhar com junção de texto no Excel e aqui vou mostrar algumas delas.

Usando o caracter &

O jeito mais tradicional é usar o caracter & (e comercial: https://pt.wikipedia.org/wiki/%26) entre dois textos entre aspas.

Um exemplo simples:

=”Tomás”&”Vásquez”

O resultado na célula é tal qual a seguir:

O resultado da fórmula acima

Os blocos de texto podem ser substituídos por células ou qualquer outra fórmula que retorne um texto válido:

=A2&A3

Agora com células

A FUNÇÃO CONCATENAR

Já falei sobre ela no blog aqui: https://www.tomasvasquez.com.br/blog/microsoft-office/vba-concatenando-ranges-funcao-concatenar

A sintaxe é bem simples. Aplicando na planilha anterior, fica assim:

=CONCATENAR(A2;A3)

Usando o CONCATENAR

O único problema da função CONCATENAR é não aceitar blocos de células, por exemplo, se ao invés da função acima fosse escrito isso:

=CONCATENAR(A2:A3)

você teria um erro do tipo #VALOR

Esse problema faz com que você tenha que selecionar célula a célula do texto que você quer unir.

Dá pra melhorar

Até aqui, isso era tudo o que você podia fazer até mais ou menos o Excel 2010/2013. Nas versões Office 365, novas funções foram introduzidas para facilitar a vida de quem precisa trabalhar muito com texto.

São elas a CONCAT e UNIRTEXTO

A FUNÇÃO CONCAT

A função CONCAT é basicamente uma CONCATENAR melhorada. Por exemplo, o problema de seleção de blocos é resolvido, já que o abaixo é válido:

=CONCAT(A2:A3)

A função CONCAT funcionando lindamente

Para ser sincero, isso torna a função CONCATENAR quase inútil.

A FUNÇÃO UNIRTEXTO

Essa merece um pouco de atenção. Ela basicamente faz tudo que foi falado acima de uma forma turbinada.

A função UNIRTEXTO é capaz de fazer tudo o que foi feito acima com alguns detalhes:

  • Assim como não função CONCAT, a UNIRTEXTO consegue unir blocos de células, mas é esperta o suficiente para ignorar células vazias no meio do caminho.
  • É capaz de adicionar separadores entre os textos (SIM!)

Como uma imagem vale mais do mil palavras, veja os exemplos abaixo:

UNIRTEXTO em ação

Em detalhes, a função UNIRTEXTO aceita 3 argumentos:

  • Separador de texto. O que quer que você coloque aqui, será colocado entre os textos a serem unidos
  • Ignorar em branco. Se marcado como VERDADEIRO, caso haja células em branco no meio do bloco de células, elas serão ignoradas
  • A célula, células ou o bloco de células a ser unido.

O resultado pode ser visto na imagem acima, e abaixo com mais algumas loucuras:

Indo um pouco além com o UNIRTEXTO

Bom proveito!

Fonte: https://qr.ae/TWhwQ9

VBA – Concatenando Ranges (Função CONCATENAR)

Velha conhecida dos veteranos de Excel, a função CONCATENAR permite que você faça a união de textos em contidos em células. O único problema da função é que, quando se quer concatenar células que estejam na sequência, não é possível informar o Range.

Por exemplo, caso o texto que se deseja concatenar esteja entre A1 e A10, você precisará usar a função da seguinte maneira:

=CONCATENAR(A1;A2;A3;A4;A5;A6;A7;A8;A9;A10)

Não seria mais simples se isto pudesse ser feito?

=CONCATENAR(A1:A10)

Para isso, nada melhor que uma porção de código VBA. O pessoal do site Excel Tips publicou um código que possibilita exatamente isso. Duas Funções foram disponibilizadas, como mostra o código abaixo.

Function Concat1(myRange As Range, Optional myDelimiter As String)
    Dim r As Range
 
    Application.Volatile
    For Each r In myRange
        Concat1 = Concat1 & r & myDelimiter
    Next r
    If Len(myDelimiter) > 0 Then
        Concat1 = Left(Concat1, Len(Concat1) - Len(myDelimiter))
    End If
End Function
 
Function Concat2(myRange As Range, Optional myDelimiter As String)
    Dim r As Range
 
    Application.Volatile
    For Each r In myRange
        If Len(r.Text) > 0 Then
            Concat2 = Concat2 & r & myDelimiter
        End If
    Next r
    If Len(myDelimiter) > 0 Then
        Concat2 = Left(Concat2, Len(Concat2) - Len(myDelimiter))
    End If
End Function

Nas duas, há um segundo parâmetro, opcional, que é o delimitador, que é um texto que irá separar todas os textos contidos na célula do range informado. Uma mão na roda. A diferença está em que na primeira (Concat1), caso uma das células do range esteja vazia, ele vai repetir o delimitador. No caso da Concat2, o problema é tratado. A figura abaixo mostra o exemplo em ação.

Exemplo de uso das Funções de Concatenação de Ranges
Exemplo de uso das Funções de Concatenação de Ranges

Bom proveito!

Referências

http://excel.tips.net/Pages/T003062_Concatenating_Ranges_of_Cells.html