miércoles, 2 de junio de 2010

Cálculo de la Edad en Años


"Partiendo de un listado con la fecha de nacimiento del personal necesito calcular su edad en años. Haciendo uso de la función AÑO no obtengo el resultado requerido ya que no tiene en cuenta fechas exactas".

Efectivamente, si necesitamos calcular la edad en años de un individuo, la función AÑO no nos proporcionará, por diferencia entre fecha de nacimiento y la fecha actual, el resultado deseado ya que no considera ni meses ni días. Por ejemplo, si tomamos como base el día de hoy, 2 de junio de 2010, y queremos saber cuántos años tiene alguien que nació el 28 de noviembre de 1969, la fórmula =AÑO(A1)-AÑO(A2) -suponiendo que en A1 tenemos la fecha actual y en A2 la fecha de nacimiento- nos devolverá un resultado de 41 años, que es la diferencia entre 2010 y1969. Es decir, que la operación que realiza la fórmula mostrada es 2010-1969=41. Pero evidentemente esta no es la edad del individuo en cuestión, ya que a 2 de junio todavía no habrá cumplido los 41.

Para realizar el cálculo correctamente utilizaremos la función FRAC.AÑO. Supongamos la siguiente lista:


Nos situamos en la celda D4 y escribimos la fórmula:

=FRAC.AÑO(C4;HOY();1)

La función FRAC.AÑO calcula la fracción de año que representa el número de días enteros entre una fecha inicial y una fecha final. Su sintaxis es FRAC.AÑO(Fecha_inicial;Fecha_final;Base). En nuestro ejemplo utilizamos como fecha inicial la fecha de nacimiento del empleado y como fecha final la generada por la función HOY(), es decir, el día actual. Una vez copiada la fórmula de D4 en el rango D5:D13 el resultado es el siguiente:


Para evitar los números decimales podemos utilizar la función TRUNCAR. En la celda E4 escribimos:

=TRUNCAR(D4) y copiamos hasta E13:


Evidentemente podemos resolver todo el problema con una sola fórmula. En F4 escribimos:

=TRUNCAR(FRAC.AÑO(C4;HOY();1))


7 comentarios:

  1. Aquí otra sugerencia: =ENTERO((HOY()-C4)/365,25). Siempre me llamó la atención el ,25. Nunca ahondé en el cálculo, pero se que así considera los años bisiestos.

    ResponderEliminar
  2. Hola Robert. Gracias por tu comentario. En realidad dividir por 365,25 es lo mismo que darle el valor 1 al argumento "base" de la función FRAC.AÑO. El ,25 es debido a que, como sabes, los años bisiestos son aquellos divisibles por 4 (1996, 2000, 2004...)ó, lo que es lo mismo, 0,25 en término de días a la hora de utilizar un divisor. El argumento "base" de la función FRAC.AÑO puede tomar los valores 1, 2, 3 ó 4 en función del "tipo de año" que queramos considerar 366; 365; 360... Normalmente sólo se utiliza el 1 que supone tener en cuenta los días reales transcurridos entre fechas dividido por el número de días reales de los años en cuestión.

    ResponderEliminar
  3. Hola,

    También se puede usar esta fórmula:
    =TRUNCAR(DIAS360(C4;HOY())/360)
    Usando esta función nos obliga a dividir por 360 pero el resultado es el mismo. De hecho, si quitamos la función truncar podemos observar que el resultado con decimales es exactamente el mismo en ambos casos.

    Un saludo

    ResponderEliminar
  4. Gracias Kiko!
    Has sido super claro, simple en tu explicación, por lo que he podido hacer un trabajo que me estaba "rompiendo la cabeza". Continua a ser generoso con tus conocimientos!!!

    ResponderEliminar
  5. Muchas gracias! me ayudò mucho tu formula y la excelente explicacion.

    ResponderEliminar