Logo Hardware.com.br
tonywippich
tonywippich Novo Membro Registrado
1 Mensagem 3 Curtidas

[Resolvido] Validação de CPF e CPNJ usando apenas formulas do Excel

#1 Por tonywippich 23/10/2015 - 17:21
Pessoal,

Eu procurei por um jeito de validar o CPF e CNPJ no Excel sem utilizar Macros e VBA.

Então encontrei dois tópicos antigos aqui no fórum sobre o assunto:

https://www.hardware.com.br/comunidade/validar-cpf/331993/
https://www.hardware.com.br/comunidade/validar-cpf/280465/

Peguei a formula de verificação do CPF apresentada neste tópicos e adaptei para a verificação do CNPJ.

A informação do Sr.Reinal Coral no endereço abaixo me ajudou muito neste trabalho.
http://www.exceldoseujeito.com.br/2008/12/18/validar-cpf-cnpj-e-titulo-de-eleitor-parte-i/

"Formula para verificação do CPF"
=SE(P22="";"";SE(SE(MOD((EXT.TEXTO(P22;1;1)*1)+(EXT.TEXTO(P22;2;1)*2)+(EXT.TEXTO(P22;3;1)*3)+(EXT.TEXTO(P22;4;1)*4)+(EXT.TEXTO(P22;5;1)*5)+(EXT.TEXTO(P22;6;1)*6)+(EXT.TEXTO(P22;7;1)*7)+(EXT.TEXTO(P22;8;1)*8)+(EXT.TEXTO(P22;9;1)*9);11)=10;0;MOD((EXT.TEXTO(P22;1;1)*1)+(EXT.TEXTO(P22;2;1)*2)+(EXT.TEXTO(P22;3;1)*3)+(EXT.TEXTO(P22;4;1)*4)+(EXT.TEXTO(P22;5;1)*5)+(EXT.TEXTO(P22;6;1)*6)+(EXT.TEXTO(P22;7;1)*7)+(EXT.TEXTO(P22;8;1)*8)+(EXT.TEXTO(P22;9;1)*9);11))&SE(MOD((EXT.TEXTO(P22;2;1)*1)+(EXT.TEXTO(P22;3;1)*2)+(EXT.TEXTO(P22;4;1)*3)+(EXT.TEXTO(P22;5;1)*4)+(EXT.TEXTO(P22;6;1)*5)+(EXT.TEXTO(P22;7;1)*6)+(EXT.TEXTO(P22;8;1)*7)+(EXT.TEXTO(P22;9;1)*8)+(EXT.TEXTO(P22;10;1)*9);11)=10;0;MOD((EXT.TEXTO(P22;2;1)*1)+(EXT.TEXTO(P22;3;1)*2)+(EXT.TEXTO(P22;4;1)*3)+(EXT.TEXTO(P22;5;1)*4)+(EXT.TEXTO(P22;6;1)*5)+(EXT.TEXTO(P22;7;1)*6)+(EXT.TEXTO(P22;8;1)*7)+(EXT.TEXTO(P22;9;1)*8)+(EXT.TEXTO(P22;10;1)*9);11))=(EXT.TEXTO(P22;10;1)&EXT.TEXTO(P22;11;1));"CPF VÁLIDO";"CPF INVALIDO"))


"Formula para verificação do CNPJ"
=SE(P6="";"";SE(SE(MOD((EXT.TEXTO(P6;1;1)*6)+(EXT.TEXTO(P6;2;1)*7)+(EXT.TEXTO(P6;3;1)*8)+(EXT.TEXTO(P6;4;1)*9)+(EXT.TEXTO(P6;5;1)*2)+(EXT.TEXTO(P6;6;1)*3)+(EXT.TEXTO(P6;7;1)*4)+(EXT.TEXTO(P6;8;1)*5)+(EXT.TEXTO(P6;9;1)*6)+(EXT.TEXTO(P6;10;1)*7)+(EXT.TEXTO(P6;11;1)*8)+(EXT.TEXTO(P6;12;1)*9);11)=10;0;MOD((EXT.TEXTO(P6;1;1)*6)+(EXT.TEXTO(P6;2;1)*7)+(EXT.TEXTO(P6;3;1)*8)+(EXT.TEXTO(P6;4;1)*9)+(EXT.TEXTO(P6;5;1)*2)+(EXT.TEXTO(P6;6;1)*3)+(EXT.TEXTO(P6;7;1)*4)+(EXT.TEXTO(P6;8;1)*5)+(EXT.TEXTO(P6;9;1)*6)+(EXT.TEXTO(P6;10;1)*7)+(EXT.TEXTO(P6;11;1)*8)+(EXT.TEXTO(P6;12;1)*9);11))&SE(MOD((EXT.TEXTO(P6;1;1)*5)+(EXT.TEXTO(P6;2;1)*6)+(EXT.TEXTO(P6;3;1)*7)+(EXT.TEXTO(P6;4;1)*8)+(EXT.TEXTO(P6;5;1)*9)+(EXT.TEXTO(P6;6;1)*2)+(EXT.TEXTO(P6;7;1)*3)+(EXT.TEXTO(P6;8;1)*4)+(EXT.TEXTO(P6;9;1)*5)+(EXT.TEXTO(P6;10;1)*6)+(EXT.TEXTO(P6;11;1)*7)+(EXT.TEXTO(P6;12;1)*8)+(EXT.TEXTO(P6;13;1)*9);11)=10;0;MOD((EXT.TEXTO(P6;1;1)*5)+(EXT.TEXTO(P6;2;1)*6)+(EXT.TEXTO(P6;3;1)*7)+(EXT.TEXTO(P6;4;1)*8)+(EXT.TEXTO(P6;5;1)*9)+(EXT.TEXTO(P6;6;1)*2)+(EXT.TEXTO(P6;7;1)*3)+(EXT.TEXTO(P6;8;1)*4)+(EXT.TEXTO(P6;9;1)*5)+(EXT.TEXTO(P6;10;1)*6)+(EXT.TEXTO(P6;11;1)*7)+(EXT.TEXTO(P6;12;1)*8)+(EXT.TEXTO(P6;13;1)*9);11))=(EXT.TEXTO(P6;13;1)&EXT.TEXTO(P6;14;1));"CNPJ VÁLIDO";"CNPJ INVALIDO"))


Mas tenham cuidado com CPF e CNPJ que iniciam com "zero".
Como eu utilizei estas formulas em uma planilha que será preenchida por outras pessoas.
Utilizei a formatação texto na células onde serão inseridos os dados e obriguei a preenche-la com comprimento de 14 (CPF) e 18 (CNPJ) para que insiram no formato que estamos acostumados.

Depois disto eu coloquei uma fórmula para retirar "." , "/" e "-" e uso as formula de validação nestas célular
CPF
[célula P22]=SUBSTITUIR(SUBSTITUIR(A22;".";"");"-";"")
CNPJ
[célula P6]=SUBSTITUIR(SUBSTITUIR(SUBSTITUIR(L6;".";"");"/";"");"-";"")

Como eu tive que gastar algum tempo para montar a fórmula do CNPJ espero que este tópico possa encurtar o caminho e tempo gasto por outras pessoas.

A versão utilizado foi Excel 2007.

Se tiverem um jeito mais fácil utilizando apenas as formulas nativas do Excel por favor avisem.

Sds
Tony
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal