Excel & Google Planilhas

Fórmula para validar CNPJ no Excel e Google Planilhas

Passo a passo com a fórmula real (sem plugin, sem VBA), e os limites dela que a maioria dos tutoriais não conta.

CNPJ tem o mesmo tipo de problema que CPF: dois dígitos verificadores calculados a partir dos outros doze por um algoritmo de módulo 11, sem função pronta no Excel ou no Google Planilhas. A fórmula dá pra montar com SUMPRODUCT, sem plugin nem macro, mas, assim como no CPF, ela sozinha não garante uma planilha limpa. No fim do artigo eu conto onde ela para.

Como funciona a validação de CNPJ

Um CNPJ tem 14 dígitos: 12 dígitos "base" mais 2 dígitos verificadores. Cada um é calculado multiplicando os dígitos anteriores por pesos específicos, somando tudo, e aplicando o resto da divisão por 11:

Em ambos os casos: se o resto da divisão por 11 for menor que 2, o dígito verificador é 0; senão, é 11 menos o resto.

A fórmula, passo a passo

Assumindo que o CNPJ (só números, sem pontuação) está na célula A2:

CélulaO que calculaFórmula
B2 Soma ponderada dos 12 primeiros dígitos (pesos 5,4,3,2,9,8,7,6,5,4,3,2) =SUMPRODUCT(MID(A2,ROW(INDIRECT("1:12")),1)*1,{5;4;3;2;9;8;7;6;5;4;3;2})
C2 1º dígito verificador =IF(MOD(B2,11)<2,0,11-MOD(B2,11))
D2 Soma ponderada pro 2º dígito (pesos 6,5,4,3,2,9,8,7,6,5,4,3, mais o 1º dígito × 2) =SUMPRODUCT(MID(A2,ROW(INDIRECT("1:12")),1)*1,{6;5;4;3;2;9;8;7;6;5;4;3})+C2*2
E2 2º dígito verificador =IF(MOD(D2,11)<2,0,11-MOD(D2,11))
F2 CNPJ válido? =AND(LEN(A2)=14,VALUE(MID(A2,13,1))=C2,VALUE(MID(A2,14,1))=E2)
Se o CNPJ vier formatado (com pontos, barra e traço) Antes da coluna B, limpe a formatação numa célula auxiliar: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,".",""),"/",""),"-",""). Use o resultado dessa célula no lugar de A2 nas fórmulas acima.

Testando com um CNPJ real (Petrobras, dado público: 33.000.167/0001-01):

33.000.167/0001-01 → 1º dígito calculado: 0 ✓ · 2º dígito calculado: 1 ✓ · válido

Já com o último dígito trocado, 33.000.167/0001-02, a fórmula pega o erro:

33.000.167/0001-02 → 2º dígito calculado é 1, mas o CNPJ tem 2 → inválido

Onde essa fórmula não é suficiente

Ela confere a matemática certinho, mas não é a mesma coisa que garantir que os dados da sua planilha estão limpos, ou que a empresa existe de verdade:

Quer conferir um CNPJ isolado e já ver o nome da empresa, sem montar nada disso? Tem um validador de CNPJ gratuito que confere o dígito e busca a razão social na hora, direto do navegador.

Se é uma planilha inteira, não uma célula

O Zolyx faz essa conta (e a de CPF, telefone e e-mail) pra planilha inteira de uma vez (incluindo recuperar o zero à esquerda perdido e rejeitar sequências como 11.111.111/1111-11), sem fórmula nenhuma pra manter.

Testar com minha planilha