Validar CPF no Excel Lambda e VBA

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:

Validar e formatar CPF Excel 1

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:

Validar e formatar CPF Excel 2

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

Validar CPF e formatar CPF no Excel VBA

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.

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel