Neste artigo você aprenderá como validar CPF no Excel com VBA e também com Lambda.
Como validar CPF no Excel?
O número do CPF é validado a partir dos dígitos verificadores.
Para isso é necessário realizar o seguinte cálculo:
Cálculo do primeiro dígito verificador do CPF
Usando como exemplo o CPF: 038.277.936-37
1. Multiplicar os primeiros 9 números pela sequência regressiva de 2 á 10 e somamos o resultado:
2. Dividir o valor total por 11 e guardar o valor do resto da divisão:
Soma: 239, dividido por 11, o resto da divisão é 8
Se o resto da divisão for menor do que 2 o valor é 0, senão o cálculo é 11-o resto da divisão, ou seja:
1.º Dígito verificador = 11-8 = 3
Cálculo do segundo dígito verificador
1. Multiplicar os primeiros 10 números pela sequência regressiva de 2 á 10 e somamos o resultado:
2. Dividir o valor total por 11 e guardar o valor do resto da divisão:
Soma: 290, dividido por 11, o resto da divisão é 4
Se o resto da divisão for menor do que 2 o valor é 0, senão o cálculo é 11-o resto da divisão, ou seja:
2.º Dígito verificador = 11-4 = 7
Logo o dígito verificador do sistema é então 37
Validar CPF com VBA no Excel
Para instalar a função pressione as teclas ALT + F11, depois clique em Inserir->Módulo
No módulo criado cole o código VBA:
'Função que valida CPF
Public Function lfValidaCPF(ByVal lNumCPF As String) As Boolean
Application.Volatile
Dim lMultiplicador As Integer
Dim lDv1 As Integer
Dim lDv2 As Integer
lMultiplicador = 2
'Realiza o preenchimento dos zeros á esquerda
lNumCPF = String(11 - Len(lNumCPF), "0") & lNumCPF
'Realiza o cálculo do dividendo para o dv1 e o dv2
For i = 9 To 1 Step -1
lDv1 = (Mid(lNumCPF, i, 1) * lMultiplicador) + lDv1
lDv2 = (Mid(lNumCPF, i, 1) * (lMultiplicador + 1)) + lDv2
lMultiplicador = lMultiplicador + 1
Next
'Realiza o cálculo para chegar no primeiro dígio
lDv1 = lDv1 Mod 11
If lDv1 >= 2 Then
lDv1 = 11 - lDv1
Else
lDv1 = 0
End If
'Realiza o cálculo para chegar no segundo dígido
lDv2 = lDv2 + (lDv1 * 2)
lDv2 = lDv2 Mod 11
If lDv2 >= 2 Then
lDv2 = 11 - lDv2
Else
lDv2 = 0
End If
'Realiza a validação e retorna na função
If Right(lNumCPF, 2) = CStr(lDv1) & CStr(lDv2) Then
lfValidaCPF = True
Else
lfValidaCPF = False
End If
End Function
Com isso basta usar agora diretamente na sua planilha usando a função lfValidaCPF.
Validar CPF com Lambda no Excel
Uma forma de realizar a validação do CPF sem usar VBA é usando uma função Lambda.
A função Lambda está disponível no Microsoft 365.
Para isso foram criadas então três funções no Excel.
Para criar as funções lambda, nós fizemos conforme acima, três funções que unidas resultam na função ValidarCPF.
Para isso basta criar intervalos nomeados conforme abaixo:
DIGT1:
=LAMBDA(CPF;POS;SOMAR1;MULTIPLICADOR;
EXT.TEXTO(DIREITA(“00000000000″&CPF;11);POS;1)*(MULTIPLICADOR+SOMAR1))
PRIMDIGT2:
=LAMBDA(CPF;POS;SOMAR1;MULTIPLICADOR;
SE(POS=1;DIGT1(CPF;POS;SOMAR1;MULTIPLICADOR);
PRIMDIG2(CPF;POS-1;SOMAR1;MULTIPLICADOR+1)+DIGT1(CPF;POS;SOMAR1;MULTIPLICADOR)))
VALIDARCPF:
=LAMBDA(CPF;LET(CALCULODIGITO1;MOD(PRIMDIG2(CPF;9;0;2);11);
RESULTADO1;SE(CALCULODIGITO1>=2;11-CALCULODIGITO1;0);
CALCULODIGITO2;MOD(PRIMDIG2(CPF;9;1;2)+(RESULTADO1*2);11);
RESULTADO2;SE(CALCULODIGITO2>=2;11-CALCULODIGITO2;0);
SE(DIREITA(CPF;2)=RESULTADO1&RESULTADO2;VERDADEIRO;FALSO) ))
Irá ficar como abaixo:
Ao final, basta usar a função =VALIDARCPF(SEUCPF) para que ela retorne VERDADEIRO ou FALSO conforme a validação realizada na lista de CPF.
No vídeo ao topo deste artigo temos também a explicação passo-a-passo de como inserir
Download da Planilha Validar CPF no Excel Lambda e VBA
Realize o download da planilha deste artigo no botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.