En Excel existen diferentes funciones preestablecidas con las que podemos trabajar estos cálculos, particularmente yo recurrí por un tiempo a la siguiente:
Como vemos, es una fórmula relativamente extensa , que si se aplica con frecuencia, la lógica nos indica que deberíamos crear nuestra propia función y así simplificar el trabajo. Fue así que me decidí por hacerla y en las siguientes líneas escribo el código de Visual Basic.
Function EDAD(RFC As String) As Integer
'
' EDAD Macro
' Calcula la edad a partir del RFC o CURP del cliente
'
Dim fecha As Date
Dim anio As String
Dim DIA As String
Dim MES As String
hoy = DateValue(Now)
current = Year(hoy) - 2000
DIA = Mid(RFC, 9, 2)
MES = Mid(RFC, 7, 2)
If Val(Mid(RFC, 5, 2)) < current Then
anio = Val(Mid(RFC, 5, 2)) + 2000
Else
anio = Val(Mid(RFC, 5, 2)) + 1900
End If
fecha = DIA & "/" & MES & "/" & anio
EDAD = Int(DateDiff("d", fecha, hoy) / 365.25)
End Function
En donde RFC, es una celda que contiene una secuencia de valores alfanum éricos y cuyos primeros 10
dí gitos son del tipo ABCD650123, tanto para el caso del RFC como de la CURP.
, el resultado es una función con una sintaxis sumamente sencilla:
=EDAD(Celda_RFC_o_CURP)
Con lo que nuestra celda luce ahora así:
Para descargar el archivo con la función personalizada pulsa aquí.
También elaboré un pequeño tutorial para su instalación el cual puedes descargar dando click aqui.
Espero que les sea de utilidad, ya que puede ser explotado en diversas áreas.