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.

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:
- Limpe com REGEXREPLACE
- Valide com REGEXMATCH
- 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:
- Escolha uma coluna bagunçada: telefone ou e-mail.
- Crie limpo com REGEXREPLACE para tirar o que sobra.
- Crie ok com REGEXMATCH para marcar válido e inválido.
- Filtre os inválidos e corrija só esse grupo.
- Se precisar de CEP ou domínio, adicione uma coluna com REGEXEXTRACT e SEERRO.
- 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.