Curso
A criação de texto bem formatado a partir de dados do Excel é uma necessidade comum, mas a junção de valores pode ficar confusa. A função TEXTJOIN()
do Excel oferece uma solução simples, permitindo que você reúna intervalos de texto usando um delimitador e até mesmo ignorando células vazias.
Neste artigo, abordarei os conceitos básicos do TEXTJOIN()
, verei como ele se compara a funções semelhantes, como CONCAT()
e CONCATENATE()
, e trabalharei com cenários práticos em que ele se destaca. No decorrer do artigo, defenderei o site TEXTJOIN()
porque acredito que ele é a melhor ferramenta para combinar textos e acredito que, ao final do artigo, você também ficará convencido.
Como funciona o TEXTJOIN() do Excel
Primeiro, vamos esclarecer o que o TEXTJOIN()
realmente faz e por que sua sintaxe é muito mais flexível do que a anterior.
Em sua essência, o TEXTJOIN()
permite que você junte valores de texto de várias células, inserindo um delimitador (como vírgula, espaço ou ponto e vírgula) entre eles. Diferentemente das abordagens mais antigas, ele pode processar um intervalo completo de uma só vez e você pode decidir se deseja ignorar os espaços em branco.
Aqui está a sintaxe:
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
-
delimiter
: O(s) caractere(s) que você deseja entre cada parte do texto (geralmente uma vírgula, espaço, etc.) -
ignore_empty
: TRUE para ignorar células em branco, FALSE para incluí-las -
text1, [text2], …
: As células, intervalos ou valores que você deseja combinar
Por exemplo, suponha que você tenha valores em A1, A2 e A3. Você deseja uni-las, separadas por vírgulas, sem deixar espaços em branco:
=TEXTJOIN(",", TRUE, A1:C1)
Se A2 estiver vazio, você obterá apenas os valores de A1 e A3, separados por uma vírgula.
Por que isso é importante? Outras funções (estou pensando em CONCATENATE()
) fazem com que você liste cada célula separadamente e não ignoram os espaços em branco. TEXTJOIN()
é mais curto para digitar e muito mais fácil de manter.
TEXTJOIN() vs. CONCATENATE() vs. CONCATENATE() CONCAT()
Agora que já abordamos os conceitos básicos do TEXTJOIN()
, vale a pena ver como ele se compara diretamente às funções de texto mais antigas do Excel. Se você já usou CONCATENATE()
ou CONCAT()
, talvez esteja se perguntando por que mudar.
-
TEXTJOIN()
: Permite que você especifique um delimitador e ignore facilmente os espaços em branco. Aceita faixas. -
CONCAT()
: Une intervalos ou células de texto individuais, mas você não pode especificar um delimitador. Ele não pula espaços em branco. -
CONCATENATE()
: A opção mais antiga. Obriga você a especificar cada célula uma a uma. Sem campo delimitador, sem suporte a intervalo.
Como exemplo, vamos unir os valores em B1, B2 e B3 com um ponto e vírgula entre cada um. Veja como são as diferentes funções:
=TEXTJOIN(";", TRUE, A1:C1)
=CONCAT(B1:D1)
=CONCATENATE(B1, C1, D1)
Observe como o site TEXTJOIN()
é o único que permite que você escolha um delimitador sem complicações adicionais. Com CONCAT()
ou CONCATENATE()
, se você quiser delimitadores, terá que adicioná-los manualmente:
=B1 & ";" & C1 & ";" & D1
Além disso, e talvez igualmente importante, dependendo de como seus dados estão estruturados, se alguma célula estiver em branco, TEXTJOIN()
poderá ignorá-la para você. CONCATENATE()
e CONCAT()
incluirão o espaço em branco.
Manipulação de delimitadores e células vazias
Permita-me falar um pouco mais sobre esses dois pontos problemáticos comuns: adicionar delimitadores consistentes e ignorar células em branco.
Delimitadores personalizados
É provável que você queira delimitadores diferentes para casos diferentes. Você pode usar vírgulas, pipes, novas linhas ou até mesmo outros tipos de caracteres como separadores.
Para unir com uma barra vertical, use isto:
=TEXTJOIN("|", TRUE, D1:G1)
Você também pode fazer mais coisas de nicho. Aqui, estou usando um espaço-espaço traço como separador:
=TEXTJOIN(" - ", TRUE, D1:G1)
Você pode até mesmo usar CHAR(10)
para uma quebra de linha, embora seja necessário ativar Quebrar texto na formatação da célula para que você veja o efeito.
Pular espaços em branco
Uma das coisas mais frustrantes na montagem de dados é lidar com espaços em branco. O site TEXTJOIN()
coloca você no controle. Defina o argumento ignore_empty
como TRUE
, e os espaços em branco são totalmente deixados de fora.
=TEXTJOIN(", ", TRUE, E1:G1)
Resultado: "Vermelho, azul". A célula vazia (F2) é ignorada, portanto você não recebe uma vírgula extra.
Se você definir ignore_empty
como FALSE
:
=TEXTJOIN(", ", FALSE, E1:G1)
Agora o resultado é: "Red, , Blue". Essa vírgula extra chama a atenção (e geralmente não é o que você deseja). Em minha experiência, o site TRUE
geralmente é o melhor.
Tudo isso pode parecer uma pequena diferença, mas se você praticar um pouco essa função, economizará tempo nas limpezas pós-processamento.
Criação de listas e rótulos dinâmicos
Agora que você já viu os conceitos básicos, vamos explorar como o TEXTJOIN()
pode resolver problemas. Vou me concentrar em dois cenários que você provavelmente encontrará: criação de resumos dinâmicos e montagem de rótulos a partir de dados variáveis.
Criação de resumos a partir da entrada do usuário
Suponha que você esteja coletando respostas de pesquisas em que os usuários respondem Sim/Não a um conjunto de perguntas opcionais. Apenas alguns responderão, portanto, os resultados são distribuídos entre F1 e J1.
Se você quiser listar somente as perguntas às quais eles responderam "Sim", poderá usar TEXTJOIN()
em combinação com IF()
e FILTER()
(com matrizes dinâmicas nas versões mais recentes do Excel).
Suponha que G1:G5 tenha o texto da pergunta e F1:F5 tenha o Yes/No correspondente:
=TEXTJOIN(", ", TRUE, FILTER(F2:J2, F1:J1="Yes"))
Agora, sua célula de saída lista apenas as perguntas para as quais o usuário disse "Sim", separadas por vírgulas.
Se você não tiver matrizes dinâmicas, poderá criar uma coluna auxiliar que exiba o texto da pergunta somente se a resposta for Sim e, em seguida, unir esse intervalo auxiliar com TEXTJOIN()
.
Criação de rótulos personalizados a partir de dados variáveis
Imagine que você está preparando etiquetas de envio de uma tabela em que alguns campos (como "Apartamento" ou "Suíte") às vezes estão em branco. Você deseja unir os componentes do endereço em uma única linha.
Se o seu endereço estiver em H1 ("123 Main St"), H2 ("Apt 4B" ou em branco), H3 ("Springfield"), H4 ("IL"), H5 ("62704"), você usaria:
=TEXTJOIN(", ", TRUE, H1:L1)
Se H2 estiver em branco, o resultado ainda estará limpo (sem vírgulas duplas!) porque o site TEXTJOIN()
ignora a célula vazia.
Esses são exemplos comuns, mas a mesma lógica se aplica a qualquer lugar em que você esteja mesclando dados com campos opcionais ou inclusão condicional.
Outros aspectos a serem considerados
Por mais conveniente que seja o site TEXTJOIN()
, há alguns problemas menores:
Uso de vários intervalos com TEXTJOIN()
Um aspecto que você deve saber sobre o site TEXTJOIN()
é como ele lida com vários intervalos. Você pode passar em mais de um intervalo, mesmo que eles não estejam próximos um do outro, desde que você os liste separadamente:
=TEXTJOIN(", ", TRUE, B1:D1, B2:D2)
Isso funciona muito bem. O Excel combinará os valores de ambos os intervalos e os unirá. Lembre-se: Você não pode escrevê-los como uma única matriz, como em (A1:A3,C1:C3)
. Você precisa listar cada intervalo como seu próprio argumento.
Funções aninhadas e matrizes dinâmicas
Se você estiver usando TEXTJOIN()
como parte de uma fórmula de matriz dinâmica (como em UNIQUE()
ou FILTER()
), lembre-se de que os argumentos delimitador e ignore_empty
ainda devem ser valores únicos. O uso de matrizes nesse local retornará um erro #VALUE!
.
Delimitadores e formatação final
Às vezes, você não quer nenhum delimitador (você só quer juntar todo o texto). Defina o delimitador como ""
(ou seja, uma cadeia de caracteres vazia):
=TEXTJOIN("", TRUE, A1:C1)
Fique atento: se você pular o delimitador, perderá a principal vantagem da função em relação a CONCAT()
.
Se você quiser criar listas para uso fora do Excel (como uploads de CSV), tome cuidado com espaços extras, quebras de linha inesperadas ou codificação de caracteres (especialmente se estiver usando símbolos ou Unicode).
Funções relacionadas e técnicas avançadas
Ao se familiarizar com o site TEXTJOIN()
, você pode começar a se perguntar como ele se encaixa em outras funções "dinâmicas" do Excel. Muitas vezes, combiná-lo com UNIQUE()
, FILTER()
ou SORT()
torna-o ainda mais eficiente.
Por exemplo, digamos que você queira unir todas as categorias de produtos exclusivas de uma lista:
=TEXTJOIN(", ", TRUE, UNIQUE(TRANSPOSE(A1:E1)))
Observação: UNIQUE()
é orientado por coluna por padrão no Excel. Como eu estava trabalhando comuma linha, também tive que usar TRANSPOSE().
Ou, você quer apenas aqueles que atendem a uma determinada condição:
=TEXTJOIN(", ", TRUE, FILTER(A1:C1, A2:C2="Active"))
Ambos os exemplos mostram como o site TEXTJOIN()
pode resumir ou relatar dados sem colunas auxiliares ou filtragem manual.
Conclusão
Se você ainda estiver usando o site CONCATENATE()
ou encadeando células manualmente, a mudança para o site TEXTJOIN()
economizará tempo. (Eu prometo!)
Além disso, gostaria de acrescentar que aprender TEXTJOIN()
faz com que você se sinta à vontade para pensar em intervalos. Essa é uma mentalidade que vale a pena quando você usa as funções de matriz dinâmica do Excel e outras abordagens mais modernas do . Faça nosso curso Funções avançadas do Excel para continuar aprendendo.
