10.3. Verificando a autenticidade do CPF
Vamos criar uma função capaz de verificar se um dado número de CPF é valido ou não. Para tanto, precisamos entender a lógica do cálculo. É importante saber, que o raciocínio de calculo do DV(Digito Verificador) do CPF é de domínio público e todos os programadores, de qualquer linguagem o utilizam para validar CPF em seus sistemas.
Entenda a lógica da coisa! Imagine que lhe foi dado número do CPF, 590.465.719-90. Como saber se este número é valido ou não?
Para se calcular o DV, precisamos considerar que o cálculo é feito inicialmente, com os 9 primeiros números do CPF. Para facilitar, veja a tabela abaixo.
Colocamos os números do CPF e identificamos suas posições. Vamos fazer os primeiros cálculos.
Iremos multiplicar os valores de cada dígito do CPF, da esquerda para direita, começando com 10 e progredindo de forma decrescente. Finalmente, achamos o resultado que usaremos para verificar a validade do CPF.
Somamos os valores encontrados e teremos 269.
O CPF é composto por 11 números(9 + 2(DV)). Então, vamos pegar o valor que encontramos e dividir por 11, sendo 269/11 = 24,45, resto 5.
O raciocínio do cálculo é simples. Seguiremos a seguinte regra: se o resto for 0 ou 1, então o DV será igual a 0. Caso contrário, o número do DV será 11 menos o resto encontrado.
No nosso caso, o primeiro número do DV será 11 – 5 = 6.
Vamos agora, encontrar o segundo DV. Para isto, vamos reformular a tabela anterior, acrescentando o número que encontramos.
Perceba, já que encontramos o primeiro dígito, que multiplicamos o 1º número por 11 progredindo decrescentemente como na tabela anterior. Veja que na 10ª posição, colocamos o número que encontramos para o primeiro DV.
Fazendo a soma, teremos 327/11 = 29,72, resto 8. Da mesma forma, 11-8 = 3.
Pronto, o DV deste CPF deveria ser 63 e não 90. O correto é 590.465.719-63
Veja como ficou o código:
Vamos fazer os testes. Digite a fórmula do CPF na célula B1 como mostra a figura. Na célula A1, digite o CPF incorreto, que a função retornará INVALIDO. Nas células de baixo digite o número correto e veja o resultado.
Depois de ver o funcionamento básico das funções, vamos aprender uma pouco mais sobre os objetos do Excel.