25 septiembre, 2023

CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS

Hola a todos!!

Hace unos días recibí una consulta sobre el cálculo de días, meses y años entre dos fechas, pero aplicado a varios periodos, es decir, el obtener los días, los meses y los años entre dos fechas es sencillo cuando aplicamos la función SIFECHA(), podéis profundizar un poco más en este post: CALCULAR AÑOS ENTRE DOS FECHAS EN EXCEL.

Es aplicar la función sifecha() para obtener los días, los meses y los años entre las dos fechas, y donde los elementos se relacionan entre sí, es decir, no son datos absolutos, sino que los meses van acumulando los días y los años van acumulando los meses, este sería un ejemplo:

calcular-dias-meses-y-anos-entre-dos-fechas-y-diferentes-periodos

Las fórmulas usadas para obtener este resultado con:

Años: =SIFECHA(A2;B2; "Y")
Meses: =SIFECHA(A2;B2; "YM")
Días:=SIFECHA(A2;B2; "MD")
Antigüedad General: =SIFECHA(A2;B2; "y")& " años  " & SIFECHA(A2;B2; "ym")& " meses  " &SIFECHA(A2;B2; "md")& " dias "

Hasta ahora esto es sencillo, pero ¿cómo hacemos para calcular el sumatorio de los años, los meses y los días? teniendo muy en cuenta que no podemos sumar simplemente, dado que los días no pueden ser más que los días que tiene un mes.

Lo que estamos buscando sería esto (siguiendo nuestro ejemplo):

calcular-dias-meses-y-anos-entre-dos-fechas-y-diferentes-periodos2

Como podéis observar, el resultado no es la simple suma de conceptos por columna, sino que existe una relación entre días, meses y años, de forma que los días sobrantes se van trasladando a los meses y los meses sobrantes se van trasladando a los años (en este la suma de los periodos no llegan a un año).

Para conseguir este resultado vamos a introducir la siguiente fórmula:

Para los días:
=SI(SUMA($E$2:E5)>30,5;SUMA($E$2:E5)-(ENTERO(SUMA($E$2:E5)/30,5)) *(30,5);SUMA($E$2:E5))

Para los meses:
=SI(SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5)>11;((SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))-(ENTERO((SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))/12))*12);SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))

Para los años:
=SUMA($C$2:C5) +ENTERO((SUMA($D$2:D5) +((SUMA($E$2:E5)-E6)/12)-D6)/12)

Esta fórmula es bastante conocida en manuales, foros, etc… y me ha parecido interesante dejarla en la web. He realizado algún ajuste que creía interesante para reducir el contenido de la fórmula.

Descarga el archivo pulsando en: CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS

Comparte este post

36 comentarios en «CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS»

  1. necesito calcular fecha de ingreso de un funcionario que tiene 3 fechas distintas en varios años (tres trabajos con ingresos de diferente (dia-mes- año)

    1. Hola María, pero la fecha de inicio será una ¿no?, para cada tipo de puesto.

      Eso lo puedes hacer con la función sifecha. Si lo que quieres es obtener todo el tiempo que lleva trabajando solo tienes que poner las fechas en el archivo del post.

      Pero no comprendo bien que es lo que necesitas.

      Saludos.

  2. ¿CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS?
    LO QUE QUIERO OBTENER EN LA FORMULA, ES LA FECHA DE INGRESO:
    SI EL FUNCIONARIO HA TRABAJADO EN DOS O TRES O MAS SERVICIOS, ADEMAS NO TIENE LOS MESES, DÍAS O AÑOS COMPLETOS. COMO LLEGO A TENER EL DÍA,MES Y AÑO DE INGRESO?, NOSE SI SE ENTIENDE???? AGRADECIDA.

    1. Prueba con la función fecha:

      =FECHA(AÑO(HOY())-1;MES(HOY())-1;DIA(HOY())-1)

      En donde está el -1 resta los años, los meses y los días y obtendrás la fecha de ingreso.

      Saludo.s

  3. Si pones la fecha de ingreso: 16/07/2015 y la de egreso: 02/01/2020,la diferencia te da 4 años 1 mes y 130 dias???. Como se soluciona y por que ocurre?

    1. Hola Marcelo:

      Me temo que has movido las fórmulas o los rangos. Por favor, descarga el archivo y modifica alguno de los rangos por el que tu propones, por ejemplo el de la fila 5

      Te dará: 4 años  5 meses  17 dias

      y en el sumatorio: 5 años 4 meses 19 días

      Verifica la fórmula y los rangos.

      Saludos.

  4. Excelente tutorial !… mi duda es, qué formula utilizas para sumar años, meses y dias, si no tienes la fecha definida?.. es decir, quiero sumar:
    10 años, 11 meses, 24 días con 9 meses, 25 días?

  5. Hola, me gustaría me ayudara necesito una fórmula que me diga cuando se cumple un año y un mes dentro un rango de dos fechas por ejemplo 1/01/2013 a 1/01/20 y me devuelva una fecha exacta

    1. Hola Ian:

      Por ejemplo =FECHA(AÑO(A1)+1;MES(A1)+1;DIA(A1)) con esta fórmula estás sumando un año y un mes a la fecha que tengas en la celda A1.

      Saludos.

  6. actualmente uso esta formula para calulcar los meses entre un periodo especifico =DATEDIF(E2,F2,»m»), por ejemplo 5/15/2013 y 5/16/2016 = 36 meses, pero tambien requiero calular los meses por cada año en ese periodo es decir durante el 2013 son 7 meses, durante 2014 son 12, durante 2015 son 12 y durante 2016 5 , alguien sabe como hacerlo

    1. Hola: lo que indicas o bien lo calculas por tramos o sería necesario desarrollar un función de matriz dinámica o fórmula matricial para poder resolverlo. Si tengo tiempo intento publicar algo al respecto. Saludos.

  7. Buenas! me gustaría saber cómo puedo calcular una fecha fin de 15 días posteriores a la fecha inicial quitando un intervalo de fechas.
    Tipo: Inicio 1/01/02020, tiempo sin trabajar 06/01/2020-08/02/2020, ¿fecha fin?

    1. Hola Lorena:

      Puedes decirme la fecha que estimas como fecha fin? cuando dices quitando intervalo es restar o quizás añadir?. Explica un poco más la consulta, por favor, saludos.

  8. fecha fin sería 15 días después del inicio del trabajo quitando el intervalo de tiempo que no se ha trabajado. Espero que esté más claro.Muchas gracias,Un saludo

    1. Hola, finalmente no has indicado una fecha como te preguntaba … y la razón es porque se puede interpretar de muchas formas. No obstante, te muestro fórmulas que indican lo que comentas, fecha con los 15 días menos el intervalo de tiempo que no se ha trabajado.

      A la fecha 01/01/2020 si le sumamos 15 días, es 16/01/2020 y según el rango que indicas es necesario restar el tramo no trabajado, que es de 10 días, es decir desde 06/01/2020 hasta el 16/01/2020. Por lo que la fecha fin es 06/01/2020.

      En formulación sería:

      =SI(Y(MES(A2)=MES(C2);FECHA(AÑO(A2);MES(A2);DIA(A2)+15)>C2);FECHA(AÑO(A2);MES(A2);DIA(A2)+15)-SIFECHA(C2;FECHA(AÑO(A2);MES(A2);DIA(A2)+15);»D»);FECHA(AÑO(A2);MES(A2);DIA(A2)+15))

      Donde A2: 01/01/2020 C2: 06/01/2020 D2: 08/02/2020.

      Saludos.

  9. Buenas! disculpa, tienes razón, no he puesto fechas.
    Si empiezo a trabajar el día 01/01/2020 y me hacen contrato para trabajar 15 días, pero no trabajo del 06/01/2020 al 08/02/2020, entiendo que del día 1 al 6 trabajo 5 días y que los otros 10 que restan los trabajo a partir del día 08/02/2020, por lo que mi día de finalización de contrato sería el 18/02/2020

    1. Hola Lorena:

      Entoces sería así:

      =SI(Y(MES(A2)=MES(C2);FECHA(AÑO(A2);MES(A2);DIA(A2)+15)>C2);FECHA(AÑO(A2);MES(A2);DIA(A2)+15+SIFECHA(C2;D2;"D"));FECHA(AÑO(A2);MES(A2);DIA(A2)+15))

      Donde: A2: 01/01/2020 B2: 06/01/2020 C2: 08/02/2020.

      Saludos.

      Para otros escenarios seguramente es necesario programar una rutina, saludos.

    1. No lo he probado, pero creo que si aplicas en lugar de Sifecha, dias.lab obtendrás los días laborables y luego con la otra fórmula obtendrás los totales.

      Saludos.

  10. Buenas y muy bueno todo!!! Como es que cuando calculo del 01/01/2020 al 31/12/2020 me salen 11 meses y 30 dias??? usando la formula de antigüedad general. Gracias por todo

  11. AGRADECIDO POR EXCELENTE ACLARATORIA. Pero sigue pendiente calcular años, meses y dias con años inferiores a 1900. El truquito de sumar 100 a dichos años ya lo conozco, que otra trampita se puede hacer??. GRACIAS, GRACIAS, GRACIAS

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies