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. 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.