domingo, 6 de marzo de 2011

Años, Meses y Días Transcurridos entre Fechas

"Necesito calcular los años, meses y días transcurridos desde una fecha concreta hasta hoy".

La solución es bastante sencilla utilizando, en términos de John Walkenbach, la función misteriosa de Excel, esto es, SIFECHA. Dicha función no aparece en la lista de funciones desplegables de la categoría Fecha y Hora. Tampoco aparece en el cuadro de diálogo Insertar Función, por lo que tendremos que introducirla manualmente ¿Por qué? Los caminos de Microsoft son inescrutables... Lo cierto es que se trata de una función muy útil que paso a describir:

=SiFECHA(Fecha_Inicial;Fecha_Final;Argumento_tiempo)

Los dos primeros argumentos no requieren explicación mientras que el tercer argumento se trata de un código que representa la unidad de tiempo que nos interesa. A saber:

"Y" Devolverá el número de años completos entre fecha inicial y fecha final.
"M" Devolverá el número de meses completos totales entre fecha inicial y fecha final.
"D" Devolverá el número de días totales entre fecha inicial y fecha final.

"YM" Devolverá los meses transcurridos entre las fechas y que no completen un año.
"MD" Devolverá los días del mes entre fechas que no completen un mes.
"YD" Devolverá los días entre fechas que no completen un año.

Partimos del siguiente ejemplo y entrada de datos:


Nos situamos en la celda C5 y escribimos la fórmula que calculará el número de años enteros transcurridos entre la fecha inicial y la fecha final:

=SIFECHA($C$2;$C$3;"Y")


Una vez hecho esto, y dado que hemos colocado referencias absolutas a la fecha inicial y a la fecha final, podemos copiar hacia abajo hasta la celda C7 y simplemente modificar después el tercer argumento en la fórmulas de C6 y C7. A saber:

En C6 =SIFECHA($C$2;$C$3;"YM") que nos devuelve el número de meses transcurridos entre las fechas y que no completan un año.

En C7 =SIFECHA($C$2;$C$3;"MD") que nos devuelve el número de días que no completan un mes.


Si queremos que aparezca el resultado completo en una sola celda entonces deberemos utilizar la función CONCATENAR (usaremos el operador &) para unir las distintas partes de la ecuación. En la celda B9 escribimos la siguiente fórmula:



A continuación puedes ver el resultado de aplicar las distintas opciones de argumento de tiempo en nuestro ejemplo:


5 comentarios:

  1. Hola, tengo una duda, con esta fórmula no se come un día?
    ejemplo, pones 01/01/2010 hasta el 31/01/2010 que son 31 dias y en cambio salen 30.

    ResponderEliminar
    Respuestas
    1. El sistema utiliza meses comerciales de 30 días y años de 360 días

      Eliminar
    2. Perdón pero no es exacto. El sistema utiliza años de 365 días (366 si es bisiesto). Lo que ocurre es que utiliza la resta de fechas para realizar el cálculo. Si introducimos como fecha inicial 1/1/2013 y como fecha final 1/12/2013 nos devolverá 364 días.

      Eliminar
  2. Y cuando es del 01.01.2013 al 28.02.2013 para el cálculo de beneficiones debería considerar 60 días comerciales sin embargo sale 58, como podría hacer para que considere los 28 días de febrero como 30 días comerciales.

    ResponderEliminar
    Respuestas
    1. El sistema utiliza años de 365 días (366 si es bisiesto). Lo que ocurre es que utiliza la resta de fechas para realizar el cálculo. Por ejemplo, si introducimos como fecha inicial 1/1/2013 y como fecha final 31/12/2013 nos devolverá 364 días. PARA RESOLVER TU PROBLEMA debes utilizar la función DIAS360. Siguiendo con nuestro ejemplo debes introducir la siguiente fórmula =DIAS360(C2;C3) pero en C3 debes introducir la fecha 01/03/2013. El resultado será 60 porque con esta fórmula resta dos meses de 30 días comerciales.

      Eliminar