CamadaPrática
Ferramentas

Regex na planilha: achar, limpar e extrair texto

REGEXMATCH, REGEXEXTRACT e REGEXREPLACE no Google Sheets, com exemplos de telefone, e-mail e CEP para PME

Aprenda a limpar telefone, validar e-mail e extrair CEP ou domínio no Google Sheets com três funções de regex e um fluxo simples de PME.

Artur Boaz8 min de leitura
Planilha do Google Sheets com colunas de telefone e e-mail sendo limpas por fórmulas de regex

Cena: coluna de telefone ou e-mail bagunçada

Você abre a planilha da semana e a coluna de telefone parece um arquivo improvisado. Tem (11) 98888-7777, tem 11988887777, tem 11 9 8888 7777, tem número com DDI, tem espaço no começo e tem célula vazia no meio do lote. Na coluna ao lado, o e-mail não está melhor: maiúscula misturada, espaço no fim, algum nome @empresa.com.br e outro com domínio incompleto.

Para uma PME, isso não é detalhe cosmético. Essa lista alimenta cobrança, WhatsApp, CRM, mala direta e o relatório que a equipe precisa entregar na sexta. Se você filtrar “só celular válido” na mão, perde tempo. Se colar tudo num sistema sem limpar, a integração falha ou o disparo cai na caixa de spam.

O Google Sheets já resolve boa parte disso com três funções de regex. Sem script, sem add-on, sem pedir ajuda de TI. Você escreve um padrão, aplica na coluna e a planilha acha, limpa ou extrai o trecho que importa.

Neste tutorial, você vai usar REGEXMATCH, REGEXEXTRACT e REGEXREPLACE em casos reais de PME: telefone, e-mail, CEP e domínio. O objetivo é sair com fórmulas prontas para colar e adaptar.

Se você ainda organiza permissões de arquivos compartilhados no Drive, vale cruzar com o checklist em Permissões no Google Drive. Planilha limpa e acesso certo andam juntos.

O que é regex em uma frase

Regex (expressão regular) é um jeito de descrever um padrão de texto: “quero o que parece e-mail”, “quero só os dígitos”, “quero o CEP no formato 00000-000”.

Em vez de procurar uma palavra fixa, você descreve a forma do dado. O Sheets lê o padrão e aplica na célula. Não precisa decorar a teoria toda. Com poucos símbolos você resolve o dia a dia:

  • \d = um dígito (0 a 9)
  • \s = espaço em branco
  • . = qualquer caractere (um só)
  • + = “um ou mais”
  • * = “zero ou mais”
  • ? = “opcional”
  • ^ e $ = início e fim da célula
  • () = grupo que você quer extrair
  • [] = conjunto permitido, como [A-Za-z]

A regra prática: comece simples, teste numa célula, depois arraste. Regex ampla demais marca tudo. Regex estreita demais deixa válido de fora. O meio-termo vem com os exemplos abaixo.

Três funções no Sheets que bastam

No Google Sheets, três funções cobrem quase todo o fluxo de limpeza e validação de texto.

1. REGEXMATCH: achar (verdadeiro ou falso)

Serve para validar ou filtrar. Retorna TRUE ou FALSE.

Exemplo: a célula parece e-mail?

=REGEXMATCH(A2; "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}")

Use numa coluna auxiliar chamada email_ok. Depois filtre só TRUE antes de importar no CRM. Para telefone só com dígitos (10 ou 11 números no Brasil, DDD + número):

=REGEXMATCH(A2; "^\\d{10,11}$")

Se a coluna ainda tem pontuação, limpe antes com REGEXREPLACE (próxima seção) e valide o resultado.

2. REGEXEXTRACT: extrair o que importa

Puxa o trecho que combina com o padrão. Ideal para CEP, domínio, código interno, pedido no meio de uma frase.

Exemplo: extrair CEP no formato 12345-678 de um texto bagunçado:

=REGEXEXTRACT(A2; "\\d{5}-?\\d{3}")

O -? aceita com ou sem hífen. Se a célula não tiver CEP, a fórmula retorna erro. Para evitar célula vermelha na tela:

=SEERRO(REGEXEXTRACT(A2; "\\d{5}-?\\d{3}"); "")

3. REGEXREPLACE: limpar e padronizar

Troca o que combina pelo texto que você quiser (incluindo vazio, para apagar).

Tirar tudo que não for dígito de um telefone:

=REGEXREPLACE(A2; "\\D"; "")

\D significa “não dígito”. Assim (11) 98888-7777 vira 11988887777. Aí você valida com REGEXMATCH ou formata de novo.

Resumo do fluxo de PME:

  1. Limpe com REGEXREPLACE
  2. Valide com REGEXMATCH
  3. Extraia pedaços com REGEXEXTRACT

Três passos. Uma coluna auxiliar para cada. Sem misturar tudo numa fórmula gigante na primeira tentativa.

Sobre conectar planilha a outros sistemas depois da limpeza, o conceito base está em O que é um conector de integração. Dado sujo quebra conector bonito.

Limpar espaços e pontuação

Espaço invisível e pontuação são o vilão silencioso da planilha. O olho não vê. A fórmula e o sistema veem.

Espaços no começo, no fim e no meio

TRIM resolve pontas. Para espaços repetidos no meio, regex ajuda:

=TRIM(REGEXREPLACE(A2; "\\s+"; " "))

Isso transforma João Silva em João Silva. Bom para nome, cidade e observação colada de e-mail.

Telefone: só números

=REGEXREPLACE(A2; "[^0-9]"; "")

Equivalente prático ao \D. Remove parêntese, hífen, espaço e texto solto. Se vier Tel: 11 98888-7777, sobra 11988887777.

E-mail: minúsculas + sem espaço

Regex não troca caixa sozinha. Combine com MINUSC:

=MINUSC(TRIM(REGEXREPLACE(A2; "\\s"; "")))

Assim Nome@Empresa.com.br vira nome@empresa.com.br. Simples e suficiente para a maior parte das listas de PME.

CNPJ ou CPF colado com máscara

Mesma lógica do telefone:

=REGEXREPLACE(A2; "\\D"; "")

Depois confira o tamanho: CPF 11 dígitos, CNPJ 14. Validação completa de dígito verificador é outro assunto. Para importação rápida, tamanho + só números já evita metade do retrabalho.

Texto com símbolo de moeda ou unidade

Se a coluna deveria ser número, mas veio R$ 1.290,50 ou 10 un.:

=REGEXREPLACE(A2; "[^0-9,.]"; "")

Ajuste conforme o padrão da sua planilha (vírgula ou ponto). O ponto aqui é: tire o que não é número antes de somar ou comparar.

Dica de operação

Não sobrescreva a coluna original. Crie telefone_limpo, email_limpo, cep_limpo. Mantenha a fonte. Se o padrão falhar, você volta sem drama. Em equipe, isso evita o clássico “quem apagou o dado bruto?”.

Extrair o que importa (CEP, domínio de e-mail)

Limpar padroniza. Extrair separa o útil do ruído.

CEP dentro de endereço completo

Célula típica: Rua das Flores, 120 - Centro - 01310-100 - São Paulo.

=SEERRO(REGEXEXTRACT(A2; "\\d{5}-?\\d{3}"); "")

Você leva o CEP para frete, região ou frete grátis sem reescrever o endereço.

Domínio a partir do e-mail

Quer saber quantos leads são de Gmail, Outlook ou domínio próprio da empresa:

=SEERRO(REGEXEXTRACT(A2; "@(.+)"); "")

O trecho entre parênteses é o grupo capturado. Resultado: empresa.com.br. Para contar por domínio, use a coluna extraída numa tabela dinâmica ou CONT.SE.

Se quiser só o domínio de segundo nível de forma bem direta (sem subdomínio complexo), o mesmo padrão já resolve o caso comum de PME.

Código do pedido no meio da mensagem

Texto: Cliente pediu #PED-20418 com urgência.

=SEERRO(REGEXEXTRACT(A2; "PED-\\d+"); "")

Útil quando o time cola conversa de WhatsApp na planilha e você precisa do identificador para cruzar com o ERP.

DDD do telefone já limpo

Com telefone só em dígitos na coluna B:

=SEERRO(REGEXEXTRACT(B2; "^(\\d{2})"); "")

Os dois primeiros dígitos viram DDD. Daí você segmenta campanha por estado sem abrir cada linha.

Nome de arquivo ou SKU com padrão fixo

Se o código sempre começa com letras e termina com números, tipo SKU-AB12:

=SEERRO(REGEXEXTRACT(A2; "SKU-[A-Z0-9]+"); "")

Ajuste as letras ao seu padrão real. O importante é o hábito: descreva a forma, extraia, trabalhe só com a coluna enxuta.

Erros comuns (padrão demais amplo, acentos)

Regex na planilha erra de forma previsível. Estes são os tropeços mais frequentes em time de operações.

Padrão amplo demais

Um .+ (“qualquer coisa, um ou mais”) parece esperto e engole a célula inteira. Em REGEXEXTRACT, o resultado pode ser o texto todo, não o pedaço que você queria. Prefira limites: quantidade (\d{5}), âncoras (^ e $) ou caracteres permitidos ([A-Za-z0-9]).

Exemplo frágil para e-mail: .@.. Quase tudo com @ passa, inclusive lixo. Use um padrão mais fechado e aceite que casos raros vão para revisão manual.

Esquecer o escape no Sheets

No Google Sheets, a barra invertida muitas vezes precisa ser duplicada dentro da string da fórmula: \\d, \\s, \\D. Se o padrão “não funciona” e você copiou de outro lugar, confira as barras primeiro.

Acentos e nomes próprios

Classes como [A-Za-z] não cobrem ç, ã, é. Para validar nome completo com acento, ou você inclui letras acentuadas no conjunto, ou evita regex para esse campo e usa só TRIM + checagem de vazio. Forçar regex em nome brasileiro sem prever acento gera falso negativo: a célula é válida e a fórmula diz que não.

Validar antes de limpar (ou o contrário)

Se você aplica REGEXMATCH em telefone ainda mascarado, o padrão ^\d{10,11}$ falha. Ordem correta: limpe, depois valide. Ou valide com um padrão que aceite máscara. Não misture as duas estratégias na mesma coluna sem documentar.

Erro sem `SEERRO`

REGEXEXTRACT sem match vira erro e polui a tela. Em lote de mil linhas, isso atrapalha filtro e gráfico. Embrulhe com SEERRO(...; "") ou SEERRO(...; "revisar").

Localidade da fórmula

No Sheets em português do Brasil, o separador de argumentos costuma ser ponto e vírgula (;). Exemplos neste artigo usam ;. Se a sua planilha estiver em inglês, troque por vírgula (,). O padrão regex em si não muda.

Confiar cego no “parece válido”

REGEXMATCH diz que o formato parece certo. Não prova que o e-mail existe nem que o CPF é matematicamente válido. Para PME, formato bom já reduz devolução de integração. Para cobrança crítica, combine com regra de negócio e amostra manual.

O que fazer agora

Abra uma cópia da planilha real (não a de produção) e faça este circuito em 20 minutos:

  1. Escolha uma coluna bagunçada: telefone ou e-mail.
  2. Crie limpo com REGEXREPLACE para tirar o que sobra.
  3. Crie ok com REGEXMATCH para marcar válido e inválido.
  4. Filtre os inválidos e corrija só esse grupo.
  5. Se precisar de CEP ou domínio, adicione uma coluna com REGEXEXTRACT e SEERRO.
  6. Só então exporte, conecte ou compartilhe com a equipe.

Guarde as três fórmulas num canto da planilha ou num arquivo modelo da empresa. Regex boa é a que a equipe reutiliza sem medo. Quando a próxima importação chegar torta, você não começa do zero: limpa, valida, extrai e segue.

Formato certo na planilha é ferramenta, não enfeite. Com REGEXMATCH, REGEXEXTRACT e REGEXREPLACE, a coluna deixa de ser atrito e vira base confiável para o restante do trabalho.