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