Calcular idade no excel

Calcular idade no excel é simples, podemos usar um conjunto de formulas ou uma função em VBA, com esta última podemos personalizar o resultado mais facilmente.

Para facilitar iremos usar a função DAYS360 que retorna o número de dias entre duas datas com base num ano de 360 dias, ou seja, 12 meses de 30 dias, usado nos cálculos em contabilidade.

Esta função irá dar-nos o numero de dias entre datas que servirá de base para o calculo dos anos, meses e dias.

Calcular idade no Excel – Formulas

Metodo 1, calcular através de formulas, iremos necessitar de várias células para ir evoluindo no calculo.

B3 = Data INICIAL
D3 = Data FINAL
Total de DIAS: C4 =DIAS360($B$3;$D$3)
ANOS: C6 =INT(C4/360)
MESES: C7 =INT((C4-(C6*360))/30)
DIAS: C8 =C4-(C6*360) -(C7*30)

Calcular idade no Excel – Função em VBA

Metodo 2, uma função em VBA para o calculo de idade, bem mais simples e só se usa uma célula:

C10 =CalcularIdade(B3;D3)

A função está documentada para ajudar a perceber, foi dado nomes específicos às variáveis para melhor entender o que cada uma destas significa. Esta função coloca-se num modulo (module) para ficar disponível para todas folhas (worksheets) do livro (workbook).

Option Explicit

Function CalcularIdade(data_inicial As Date, Optional data_final) As String
Application.Volatile
Dim iTotal_Dias As Integer, iAnos As Integer, iMeses As Integer, iDias As Integer
Dim iNumero_dias_ano As Integer, iNumero_dias_mes As Integer, data_tmp As Date
Dim strAnos As String, strMeses  As String, strDias   As String, strIdade As String, sep As String

' Variaveis a serem usadas
iNumero_dias_ano = 360: iNumero_dias_mes = 30
strAnos = " ano": strMeses = " mes": strDias = " dia": sep = ""

'Controle das datas
If IsDate(data_inicial) = False Then data_inicial = Date
If IsDate(data_final) = False Then data_final = Date
If data_final < data_inicial Then
    data_tmp = data_inicial
    data_inicial = data_final
    data_final = data_tmp
End If


'A base do calculo consiste nos dias passados entre as datas
iTotal_Dias = Application.WorksheetFunction.Days360(data_inicial, data_final)
'calculo dos anos, meses e dias
iAnos = Int(iTotal_Dias / iNumero_dias_ano)
iMeses = Int((iTotal_Dias - (iAnos * iNumero_dias_ano)) / iNumero_dias_mes)
iDias = iTotal_Dias - (iAnos * iNumero_dias_ano) - (iMeses * iNumero_dias_mes)

If iAnos > 0 Then
    If iAnos > 1 Then strAnos = " anos"
    strIdade = iAnos & strAnos
End If

If iMeses > 0 Then
  'controle do separador entre anos e meses
   If iAnos > 0 And iDias = 0 Then
        sep = " e "
    ElseIf iAnos > 0 And iDias > 0 Then
        sep = ", "
    End If
   If iMeses > 1 Then strMeses = " meses"
   strIdade = strIdade & sep & iMeses & strMeses
End If

If iDias > 0 Then
      If strIdade <> "" Then sep = " e "
      If iDias > 1 Then strDias = " dias"
     strIdade = strIdade & sep & iDias & strDias
End If

CalcularIdade = strIdade

End Function

 

Exemplo de calculo de idades no excel

Exemplo com os 2 metodos, formulas e função em VBA

Calcular idade no Excel

 

Deixe um comentário