CPF em Google Sheets: Formatação e Validação com Apps Script
Três abordagens para trabalhar com CPF no Google Sheets: formato de célula personalizado, fórmulas nativas e funções customizadas via Apps Script. Ideal para formatar CPFs obtidos no gerador de CPF online ou importados de sistemas. Equivalente no ecossistema Google ao guia de formatação de CPF no Excel.
Formato personalizado
Selecione as células → Formatar → Número → Formato de número personalizado. Insira:
000"."000"."000"-"00O CPF 52998224725 será exibido como 529.982.247-25. O valor armazenado continua numérico, a formatação é apenas visual.
Funciona apenas com CPFs armazenados como número. CPFs que começam com zero (ex: 00100200300) precisam estar como número 100200300. O formato personalizado adiciona os zeros automaticamente.
Fórmulas nativas
Formatar CPF numérico
Para gerar uma string formatada a partir de um CPF numérico na célula A1:
=TEXT(A1,"000"".""000"".""000""-""00")Extrair dígitos de CPF formatado
Se o CPF vier como texto com pontuação (529.982.247-25):
=REGEXREPLACE(A1, "[^\d]", "")REGEXREPLACE é exclusivo do Google Sheets e não existe no Excel. Remove tudo que não é dígito.
Validar formato com regex
Para verificar se o valor tem o formato correto de CPF:
=REGEXMATCH(A1, "^\d{3}\.\d{3}\.\d{3}-\d{2}$")Retorna TRUE se o CPF está no formato XXX.XXX.XXX-XX. Valida apenas formato, não os dígitos verificadores. Para isso, use Apps Script.
Preservar zeros à esquerda ao digitar
Prefixe com apóstrofo ('00100200300) ou formate a coluna como Texto sem formatação antes de digitar.
Apps Script: validar CPF
Apps Script permite criar funções customizadas que aparecem como fórmulas no Sheets. Abra Extensões → Apps Script e adicione:
/**
* Valida um CPF pelo algoritmo de módulo 11.
* Aceita CPF com ou sem máscara.
*
* @param {string|number} value CPF a validar
* @return {boolean} true se o CPF for válido
* @customfunction
*/
function VALIDAR_CPF(value) {
if (!value && value !== 0) return false;
var cpf = String(value).replace(/\D/g, "");
// Padding para CPFs que perderam zeros à esquerda
while (cpf.length < 11) cpf = "0" + cpf;
if (cpf.length !== 11) return false;
if (/^(\d)\1{10}$/.test(cpf)) return false;
for (var t = 9; t < 11; t++) {
var sum = 0;
for (var c = 0; c < t; c++) {
sum += Number(cpf[c]) * ((t + 1) - c);
}
var digit = ((10 * sum) % 11) % 10;
if (Number(cpf[t]) !== digit) return false;
}
return true;
}Uso na planilha
=VALIDAR_CPF(A1) → TRUE ou FALSE
=VALIDAR_CPF("52998224725") → TRUE
=VALIDAR_CPF("11111111111") → FALSEA anotação @customfunction faz a função aparecer no autocomplete do Sheets. O @param e @return geram a documentação que aparece ao digitar a fórmula.
Apps Script: formatar CPF
/**
* Formata um CPF no padrão XXX.XXX.XXX-XX.
* Aceita número ou string com/sem pontuação.
*
* @param {string|number} value CPF a formatar
* @return {string} CPF formatado
* @customfunction
*/
function FORMATAR_CPF(value) {
if (!value && value !== 0) return "";
var cpf = String(value).replace(/\D/g, "");
while (cpf.length < 11) cpf = "0" + cpf;
if (cpf.length !== 11) return "ERRO: CPF deve ter 11 dígitos";
return cpf.slice(0, 3) + "." + cpf.slice(3, 6) + "." + cpf.slice(6, 9) + "-" + cpf.slice(9);
}Uso na planilha
=FORMATAR_CPF(100200300) → "001.002.003-00"
=FORMATAR_CPF("52998224725") → "529.982.247-25"
=FORMATAR_CPF(A1) → CPF formatado da célula A1Apps Script: validar coluna inteira
Para validar uma lista grande de CPFs de uma vez (mais rápido que fórmula célula por célula):
function validarColunaCpf() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A2:A"); // CPFs na coluna A, a partir da linha 2
var values = range.getValues();
var results = [];
for (var i = 0; i < values.length; i++) {
var value = values[i][0];
if (!value && value !== 0) {
results.push([""]);
continue;
}
results.push([VALIDAR_CPF(value) ? "Válido" : "Inválido"]);
}
// Escreve resultados na coluna B
sheet.getRange(2, 2, results.length, 1).setValues(results);
}Execute via Extensões → Apps Script → executar validarColunaCpf. A função lê todos os CPFs da coluna A e escreve “Válido” ou “Inválido” na coluna B.
Diferenças em relação ao Excel
| Funcionalidade | Google Sheets | Excel |
|---|---|---|
| Formato personalizado | 000"."000"."000"-"00 | 000"."000"."000"-"00 |
| Fórmula TEXT | =TEXT(A1,...) | =TEXT(A1,...) |
| Regex nativo | REGEXMATCH, REGEXREPLACE | Não disponível |
| Funções customizadas | Apps Script (JavaScript) | VBA |
| Validação de dados | Idêntica | Idêntica |
| Colaboração em tempo real | Sim | Limitada |
A principal vantagem do Google Sheets é o suporte nativo a regex (REGEXMATCH, REGEXREPLACE, REGEXEXTRACT), enquanto no Excel você precisa de VBA ou fórmulas complexas para o mesmo resultado.
Para gerar CPFs de teste e preencher a planilha rapidamente, use o gerador de CPF online.
Veja também: formatar CPF no Excel e regex para CPF.