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:
- 1º dígito verificador (13ª posição): usa os 12 primeiros dígitos com pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
- 2º dígito verificador (14ª posição): usa os 13 primeiros dígitos (os 12 originais + o 1º verificador) com pesos 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
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élula | O que calcula | Fó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) |
=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):
Já com o último dígito trocado, 33.000.167/0001-02, a fórmula pega o erro:
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:
- Sequências como 11.111.111/1111-11 passam na conta. Matematicamente o dígito verificador bate, mas esses números nunca foram emitidos de verdade. Um validador de verdade precisa rejeitar explicitamente todo CNPJ com os 14 dígitos iguais, o que a fórmula acima não faz sozinha.
- Zero à esquerda some quando o CNPJ está numa coluna numérica. Vários CNPJs de matriz têm o "0001" da raiz começando com zero — se a coluna for numérica, o Excel apaga esse zero inicial e as fórmulas acima vão dar erro de tamanho, não vão "adivinhar" o zero perdido.
- Passar na conta não significa que a empresa existe ou está ativa. O dígito verificador é só aritmética — ele não confirma que aquele CNPJ foi realmente emitido pela Receita Federal, nem se a empresa está ativa, baixada ou suspensa. Pra isso precisa consultar uma fonte de dados de verdade, não só validar o cálculo.
- Copiar a fórmula pra cada linha, de novo, toda vez que a planilha muda. Funciona bem pra conferir um CNPJ isolado; numa planilha de milhares de linhas com dado novo toda semana, vira manutenção constante.
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