Calcular años, meses y días entre dos fechas

Para calcular el número de años, meses o días transcurridos entre dos fechas en OpenOffice.org Calc puedes utilizar las siguientes funciones:

AÑOS( FechaInicial; FechaFinal; Tipo), siendo Tipo = 0, o también

AÑO( FechaFinal ) - AÑO( FechaInicial), pero no tiene en cuenta el día y mes de las fechas.

 

MESES( FechaInicial; FechaFinal; Tipo), siendo Tipo = 0, o también

(AÑO(FechaFinal)-AÑO(FechaInicial))*12+MES(FechaFinal)-MES(FechaInicial), pero no tiene en cuenta el día de las fechas

 

DIAS( FechaFinal; FechaInicial ) o, simplemente restando de la fecha final la inicial.

 

Si quieres calcular el número de años, meses y dias transcurridos entre dos fechas:

 

AÑOS(B2;B3;0) & " AÑOS " & (MESES(B2;B3;0)-(12*(AÑOS(B2;B3;0))) & " MESES " & (DIA(C4)-DIA(B4)+SI(DIA(C4)>DIA(B4);DIASENMES(C4);0)) & " DIAS"), o ...

 

AÑOS(B2;B3;0) & " AÑOS " & (MESES(B2;B3;0)-(12*(AÑOS(B2;B3;0))) & " MESES " & (DIA(C4)-DIA(B4)+SI(DIA(C4)>DIA(B4);DIASENMES(C4);0))+1 & " DIAS") si incluyes el último día.

 

Ejemplo: años_meses_dias.zip

Nota: corregido tras el comentario de Justo Cárdeno

Attachments:

15 comentarios

Comentario De: Josué [Visitante]

Muchas gracias No sabía cómo hacerlo

04.06.11 @ 01:07 Reply to this comment
Comentario De: Justo Cárdeno [Visitante]

La formula propuesta para obtener los día comete un error cuando el día de la fecha inicial es mayor que el día de la fecha final.

Si en A6 esta la fecha inicial y en B6 esta la fecha final, las funciones para calcular los años, meses y días que hay entre las dos fechas serían:

años: =AÑOS(A6;B6+1;0)
meses: =MESES(A6;B6+1;0)-(12*AÑOS(A6;B6+1;0))
días: =DÍA(B6+1)-DÍA(A6)+SI(DÍA(A6)>DÍA(B6);DÍASENMES(A6);0))

si no quieres incluir el último día sería:

días: =DÍA(B6)-DÍA(A6)+SI(DÍA(A6)>DÍA(B6);DÍASENMES(A6);0)


22.06.11 @ 22:43 Reply to this comment
Comentario De: [Miembro]

Gracias :)
Hemos corregido el tema con tu aportación

28.05.17 @ 02:31 Reply to this comment
Comentario De: framis [Visitante]

¿Hay alguna forma para que el resultado se mostrara con un 0 delante si es menor de 10?

Por ejemplo: 03 años 04 meses 08 días

Ya que la fórmula me arroja 3 años 4 meses 8 días y si quiero ordenar esa columna (de menor a mayor) me aparece antes un 3 años 4 meses y 12 días que el dicho anteriormente.

29.01.14 @ 19:19 Reply to this comment
Comentario De: [Miembro]

Puedes utilizar la función TEXTO( número; formato )

=TEXTO(AÑOS(B4;C4;0);"00") & " AÑOS " & TEXTO((MESES(B4;C4;0)-(12*(AÑOS(B4;C4;0)));"00") & " MESES " & TEXTO(ABS(DÍA(C4)-DÍA(B4));"00") & " DIAS")

Consulta Formatos personalizados para conocer los formatos personalizados que puedes utilizar.

30.01.14 @ 17:10 Reply to this comment
Comentario De: alexis tavares [Visitante]

mi problema es el siguiente; quiero saber el tiempo transcurrido entre la fecha 25/05/12 y el día actual en este caso 16/02/17. eso da como resultado 4 años 8 meses y 22 días, pero la formula me arroja 4A, 8M, y 10 días, el error me lo da en los días que no son 10 sino 22. adicionalmente quisiera saber si puedo obtener los resultados por separado; es decir el año en una columna, el mes en otra y los días transcurridos pero no total sino como lo explique arriba en otra columna.

16.02.17 @ 17:28 Reply to this comment
Comentario De: [Miembro]

Hemos corregido el tema tras la aportación de un compañero
Por favor, comprueba el funcionamiento con la modificación realizada
Saludos :)

28.05.17 @ 02:32 Reply to this comment
Comentario De: Michel [Visitante]

Graciaaaasss!! Que seria de la vida sin paginas como estas :)

26.11.17 @ 16:33 Reply to this comment
Comentario De: Juan Antonio [Visitante]  

Buenas tardes. Gracias por tomarse el tiempo, es bueno contar con personas como ustedes. La fórmula para los días propuesta por Justo Cárdeno funciona solo si el día de fin es mayor que 01, siendo igual a 02 el resultado es 30 o 31. Para fines prácticos no me resulta mayor problema, pero quiero comentarlo por si hubiera algo que no estoy viendo.

02.04.20 @ 05:45 Reply to this comment
Comentario De: David Gutiérrez [Visitante]

Buen día
Tengo que calcular la edad, pero tengo en celdas diferentes con menú desplegable día, mes y año de nacimiento.
Agradezco su ayuda

27.10.20 @ 16:48 Reply to this comment
Comentario De: RICARDO MURILLO [Visitante]

aun sigi sin entender por qué hay B2, B3, C4 Y B4, si la fecha inicial está solo en B2 y la final Solo en B3, ¿que hay en las celdas C4 y B4?

12.11.23 @ 16:34 Reply to this comment
Comentario De: ricardo murillo [Visitante]

¿Algo está mal con esta fórmula o yo lo estoy haciendo mal? la fórmula propuesta es la siguiente: AÑOS(B2;B3;0) & " AÑOS " & (MESES(B2;B3;0)-(12*(AÑOS(B2;B3;0))) & " MESES " & (DIA(C4)-DIA(B4)+SI(DIA(C4)>DIA(B4);DIASENMES(C4);0)) & " DIAS")

Yo tengo estas fechas, 18/02/2023 y 12/11/23. La primera es la fecha de nacimiento de una oveja y la segunda se obtiene con la fórmula =HOY(), la fecha inicial,(18/02/2023) se encuentra en la celda G47 y la fecha final (12/11/2023) obtenida con la fórmula =HOY() se encuentra en la celda H1.

Entonces mi fórmula fue la siguiente:

AÑOS(G47;H1;0) & " AÑOS " & (MESES(G47;H1;0)-(12*(AÑOS(G47;H1;0))) & " MESES " & (DIA(G47)-DIA(H1)+SI(DIA(G47)>DIA(H1);DIASENMES(G47);0)) & " DIAS")

y el resultado que me arroja es: 0 AÑOS 8 MESES 34 DIAS. ¿pero cómo pueden ser 34 días? se supone que solo falta 6 días para el 18 de noviembre y nobienbre tiene solo 30 días, mentonces debería arrojar 24 DIAS y no 34 DIAS.

¿alguien puede ayudarme aquí?

13.11.23 @ 02:50 Reply to this comment
Comentario De: Ricardo Murillo [Visitante]

Soy nuevo aquí, pero fui programador hace 35 años, actualmente me dedico a criar ovejas y la formula me arrojaba un error, cuando la fecha inicial era mayor que la fecha final la fórmula propuesta arrojaba 34 días y eso es ilógico. modifique la formula hasta alcanzar el valor correcto aunque me arrojaba en numeros negativos -24, y para convertir a positivo añadi la variable ABS. la fórmula sería:

=AÑOS(B2;B3;0) & " AÑOS " & (MESES(B2;B3;0)-(12*(AÑOS(B2;B3;0))) & " MESES " & (ABS(DIA(B2)-DIA(B3)-SI(DIA(B2)>DIA(B3);DIASENMES(B3);0))) & " DIAS")

Añadir un día adicional es un despropósito pues si sumamos 1 día, y el resultado arroja 12 años 9 meses y 30 días, sumando un día saldría 12 años 9 meses y 31 días ¿y si ese mes tubiera solo 30 días? sería ilógico. lo ideal sería usar una función adicional para que la fórmula evalúe, si ese mes tiene 30 días y el resultado es mayor que sume un mes al resultado de los meses y quede un día en DIAS. es decir 12 años 10 meses 1 día. pero creo que sumar un día adicional para intentar contar el día actual que aún no ha terminado no tiene sentido, al menos para mi.

no se como subir el archivo de la hoja de calculo como ejemplo, pero creo que los que conocen el tema entienden.

13.11.23 @ 04:12 Reply to this comment
Comentario De: Ricardo Murillo [Visitante]

y para los que desean los valores en celdas separadas, las fórmulas serían las siguientes.

=AÑOS(A6;B6;0) & " AÑOS "
=MESES(A6;B6;0)-(12*(AÑOS(A6;B6;0))) & " MESES "
=ABS(DIA(A6)-DIA(B6)-SI(DIA(A6)>DIA(B6);DIASENMES(B6);0))&" DIAS "

Comentario De: Ricardo Murillo [Visitante]

esto esta mucho más exacto incluso cuando la fecha inicial tiene meses de 31 días, donde siempre arroja un error de 1 día. y ya no se necesita el ABS

=AÑOS(B2;B3;0) & " AÑOS " & (MESES(B2;B3;0)-(12*(AÑOS(B2;B3;0))) & " MESES " & (DIA(B3)-DIA(B2)+SI(DIA(B2)>DIA(B3);DIASENMES(B2);0)) & " DIAS")

13.11.23 @ 08:12 Reply to this comment


Form is loading...