Função EXT.TEXTO no Excel: Como Extrair um Trecho do Meio de um Texto (com Exemplos)

Para extrair um trecho do meio de um texto no Excel, use a função EXT.TEXTO: a fórmula =EXT.TEXTO(texto;núm_inicial;núm_caract) devolve exatamente o pedaço do texto que começa na posição indicada e tem o tamanho que você especificar.

Você provavelmente já se deparou com um código, um CPF ou um número de telefone em que a informação que interessa não está nem no começo nem no final do texto, mas bem no meio — o DDD dentro de um telefone completo, o mês dentro de um código de lote, ou os três dígitos centrais de um CPF. As funções ESQUERDA e DIREITA não resolvem esse caso, porque elas só enxergam o início ou o fim do texto.

Sem uma função própria para isso, a alternativa vira contar posição por posição na tela, ou tentar combinar ESQUERDA e DIREITA de um jeito forçado, calculando diferenças de tamanho manualmente — um processo lento e sujeito a erro, principalmente quando o texto varia de tamanho de linha para linha.

Neste artigo iremos mostrar como usar a função EXT.TEXTO para extrair qualquer trecho do meio de um texto, o que acontece nos casos-limite (posição inicial maior que o texto, ou pedido que ultrapassa o final), e como combinar EXT.TEXTO com outras funções para descobrir a posição inicial automaticamente.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

O que a função EXT.TEXTO faz

A função EXT.TEXTO pega um texto (de uma célula ou digitado diretamente entre aspas) e devolve um trecho dele, começando numa posição específica e com um tamanho específico, contados sempre da esquerda para a direita. Assim como as outras funções de texto, ela não altera a célula original: o resultado é uma fórmula nova, em outra célula.

Sintaxe da função EXT.TEXTO

A sintaxe é:

=EXT.TEXTO(texto;núm_inicial;núm_caract)

Os três argumentos são obrigatórios: texto é a célula ou o texto de origem; núm_inicial é a posição do primeiro caractere que você quer extrair, contando a partir de 1 (o primeiro caractere do texto é a posição 1, não 0); e núm_caract é quantos caracteres, a partir dessa posição inicial, devem ser extraídos. Em inglês, essa função se chama MID.

Alguns comportamentos importantes: se núm_inicial for menor que 1, a função devolve o erro #VALOR!. Se núm_inicial for maior do que o comprimento total do texto, a função devolve texto vazio (“”), sem gerar erro. E se núm_inicial mais núm_caract ultrapassar o final do texto, a função simplesmente devolve os caracteres disponíveis até o fim, sem completar com espaços nem gerar erro.

Exemplo prático completo

Imagine uma coluna com números de telefone completos no formato “(11) 98765-4321”, em que o DDD está sempre entre a segunda e a terceira posição do texto (logo depois do parêntese de abertura). Para extrair só o DDD, a fórmula em B2 é:

=EXT.TEXTO(A2;2;2)

Coluna A (telefone completo) Fórmula em B Resultado em B (DDD)
(11) 98765-4321 =EXT.TEXTO(A2;2;2) 11
(21) 99888-1122 =EXT.TEXTO(A3;2;2) 21
(85) 98123-4567 =EXT.TEXTO(A4;2;2) 85
(47) 99655-3300 =EXT.TEXTO(A5;2;2) 47

Repare que a posição inicial 2 pula o parêntese de abertura “(“, e a quantidade 2 pega exatamente os dois dígitos do DDD, parando antes do próximo parêntese. Como o formato do telefone é sempre o mesmo em todas as linhas (parêntese, dois dígitos, parêntese), a mesma fórmula funciona para toda a coluna sem precisar de ajustes.

Os casos-limite da função EXT.TEXTO

Três situações merecem atenção especial. Primeiro, se núm_inicial for maior que o tamanho do texto — por exemplo, pedir para começar na posição 20 de um texto com só 10 caracteres — a função devolve texto vazio, não um erro, então uma fórmula como =SEERRO(EXT.TEXTO(…);”erro”) não vai capturar esse caso, porque tecnicamente não houve erro. Segundo, se núm_caract pedir mais caracteres do que existem depois da posição inicial, a função devolve só o que existe, sem completar nem travar. Terceiro, se núm_inicial for zero ou negativo, aí sim a função devolve o erro #VALOR!, porque não existe posição “zero” ou “negativa” dentro de um texto.

Descobrindo a posição inicial automaticamente

No exemplo do telefone, a posição inicial era sempre fixa (posição 2), porque o formato do texto nunca mudava. Mas em textos com tamanho variável — como extrair o que vem depois de um hífen que pode estar em posições diferentes — é preciso descobrir a posição inicial com a função LOCALIZAR (ou PROCURAR, se precisar diferenciar maiúsculas de minúsculas) antes de usar o EXT.TEXTO. Por exemplo, para extrair o que vem depois do primeiro hífen de um código “LOTE-2026-A45”, a fórmula fica:

=EXT.TEXTO(A2;LOCALIZAR(“-“;A2)+1;4)

Aqui, LOCALIZAR(“-“;A2) encontra a posição do primeiro hífen, o +1 pula esse hífen para começar logo depois dele, e o EXT.TEXTO extrai os quatro caracteres seguintes a partir dali. Essa combinação é muito comum quando o texto tem um separador fixo (hífen, barra, espaço), mas o conteúdo antes dele varia de tamanho.

Combinando EXT.TEXTO com outras funções

Além de LOCALIZAR, o EXT.TEXTO combina bem com NÚM.CARACT, quando você precisa pegar “tudo a partir de uma posição até o final do texto”, sem saber o tamanho exato do trecho restante: =EXT.TEXTO(A2;5;NÚM.CARACT(A2)) — mesmo pedindo mais caracteres do que realmente existem depois da posição 5, a função simplesmente devolve o que sobrar, sem erro, como explicado nos casos-limite acima. Outra combinação comum é com VALOR, para transformar o trecho extraído (que sai como texto) num número de verdade: =VALOR(EXT.TEXTO(A2;5;3)).

EXT.TEXTO, ESQUERDA e DIREITA: qual usar

As três funções resolvem o mesmo problema geral — extrair parte de um texto — mas em pontos diferentes. Use ESQUERDA quando a informação está colada ao início do texto. Use DIREITA quando está colada ao final. Use EXT.TEXTO em todos os outros casos, quando a informação está no meio, cercada por outros caracteres dos dois lados — e é justamente essa flexibilidade que torna o EXT.TEXTO a função mais usada nas fórmulas de extração de texto mais elaboradas.

Disponibilidade

A função EXT.TEXTO está disponível em todas as versões do Excel, do Excel 2003 em diante, incluindo Excel 365, Excel Online e Excel para Mac — é uma das funções de texto mais antigas e estáveis da ferramenta. No Google Sheets, a função equivalente se chama MID, com a mesma sintaxe (três argumentos obrigatórios) e o mesmo comportamento.

Perguntas frequentes

Como faço para extrair um trecho do meio de um texto no Excel?

Use a função EXT.TEXTO, assim: =EXT.TEXTO(A1;posição_inicial;quantidade_de_caracteres). Por exemplo, =EXT.TEXTO(A1;2;2) extrai dois caracteres começando na segunda posição do texto.

O que acontece se a posição inicial que eu pedir for maior que o tamanho do texto?

A função EXT.TEXTO devolve texto vazio (“”) nesse caso, sem gerar erro. Já se a posição inicial for zero ou um número negativo, aí sim a função devolve o erro #VALOR!, porque não existe posição zero ou negativa dentro de um texto.

Qual a diferença entre EXT.TEXTO, ESQUERDA e DIREITA?

ESQUERDA sempre extrai a partir do início do texto, e DIREITA sempre a partir do final. EXT.TEXTO é a única das três que permite escolher qualquer posição inicial, por isso é a função certa quando a informação que você quer está no meio do texto, cercada por outros caracteres.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como usar a função EXT.TEXTO para extrair qualquer trecho do meio de um texto, incluindo os casos-limite e como descobrir a posição inicial automaticamente, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já precisou extrair uma informação escondida no meio de um código ou telefone no Excel? Prefere usar uma posição fixa ou calcular a posição inicial dinamicamente com LOCALIZAR? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *