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

En un artículo anterior mostré cómo calcular el tiempo transcurrido entre dos fechas pero en dicho ejemplo utilizaba solamente una unidad de tiempo, ya sea que la diferencia la obtenía   en años, o en meses, o en días, pero nunca mostré como hacer una combinación de todos ellos.

La función SIFECHA

En este ejemplo volveremos a utilizar la función SIFECHA, así que si no estás familiarizado con esta función te sugiero que leas el artículo antes de continuar y pongas especial atención a los diferentes valores que podemos indicar en el tercer argumento de dicha función.

En la siguiente imagen puedes observar el resultado que devuelve la función SIFECHA al utilizar las mismas fechas pero con diferentes valores para su tercer argumento:

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

Cuando utilizamos el argumento “y” obtenemos la diferencia en años entre dos fechas. Al utilizar el argumento “ym” le indicamos a la función SIFECHA que obtenga la diferencia en meses pero como si ambas fechas fueran del mismo año y por eso obtenemos como resultado el valor 6 que es la diferencia entre el mes 01 y el mes 07. La última fórmula utiliza el argumento “md” para pedir la diferencia en días pero suponiendo que las fechas tienen el mismo mes (y año) y por lo tanto la fórmula devuelve el valor 7 que es precisamente la diferencia entre el día 14 y el día 21.

Los resultados de estas tres fórmulas son los que nos dan la diferencia en años meses y días entre dos fechas y solo nos restará concatenar los resultados de cada una de ellas para generar una cadena de texto que muestre el resultado final.

Fórmula para calcular años, meses y días

La siguiente fórmula nos ayuda a calcular años, meses y días entre dos fechas:

=SIFECHA(A2,B2,"y") & " años " & SIFECHA(A2,B2,"ym") & " meses " & SIFECHA(A2,B2,"md") & " días"

Lo único que he hecho para crear esta fórmula es concatenar los resultados de las fórmulas mostradas anteriormente y además insertar las palabras años, meses y días para poder diferenciar entre cada uno de los resultados. Observa el comportamiento de esta fórmula al utilizarla con varias fechas:

Determinar el número de años, meses y días entre dos fechas en Excel

Suprimir valores en cero

Esta fórmula funciona correctamente para cualquier fecha, pero si la diferencia entre ambas es menor a un año, entonces obtendremos valores en cero tal como puedes ver en la siguiente imagen:

Cómo calcular los años, meses y días entre dos fechas en Excel

Para evitar que la fórmula muestre esos valores en cero debemos agregar la función SI para que nos ayude a hacer la validación. La fórmula que suprime los valores en cero es la siguiente:

=SI(SIFECHA(A2,B2,"y")=0,"", SIFECHA(A2,B2,"y") & " años ") & SI(SIFECHA(A2,B2,"ym")=0,"",SIFECHA(A2,B2,"ym") & " meses ") & SI(SIFECHA(A2,B2,"md")=0,"",SIFECHA(A2,B2,"md") & " días")

Al aplicar esta fórmula a los mismos datos obtendremos el siguiente resultado:

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

Calcular la edad en años, meses y días

Ahora que ya conocemos la fórmula para calcular años, meses y días entre dos fechas en Excel, podemos hacer una pequeña variación para obtener la edad de cualquier persona. La única modificación que haremos es colocar la función HOY como el segundo argumento de la función SIFECHA de manera que el cálculo se realice respecto a la fecha actual. Suponiendo que la fecha de nacimiento se encuentra en la celda A2, la fórmula quedaría de la siguiente manera:

=SIFECHA(A2,HOY(),"y") & " años " & SIFECHA(A2,HOY(),"ym") & " meses " & SIFECHA(A2,HOY(),"md") & " días"

Para una persona que haya nacido el 20/10/1980 y sabiendo que la fecha de hoy es 15/08/2013, la fórmula devolverá el siguiente resultado:

Calcular la edad en Excel en años, meses y días

Artículos relacionados
La función SIFECHA en Excel

65 comentarios en “Calcular años, meses y días entre dos fechas en Excel

  1. Angel

    Buenisimo ,como siempre dando a l traste con tus orientaciones.. Mejor dicho clases magistrales de excel. Gracias por tus aporte..

  2. jesus nieves

    Fabuloso me encontraba realizando calculos para las fechas de algunos articulos que fabricamos y esta formula me ayudara en el almacen para saber el tiempo de almacenaje gracias

  3. Walter Aedo

    Excelente!!!!! Muchas gracias por toda Tu ayuda, me ha servido mucho!!!!!
    Desde Chile MUchas ,muchas gracias

  4. Víctor

    buenísimo sirve de mucho

    1. JLPEREZC

      Extraordinario; muy útil. Gracias

  5. Manuel Reyes

    Demasiado útil

  6. Alberto

    Buenas tardes
    Muy buena pagina que te has armado con consejos practicos y de gran ayuda, te mereces un 10, tengo un par de dudas, como se llama esta funcion en ingles y como podria usarla para calcular semanas?
    Muchas gracias por tu ayuda, sigue echandole ganas

    1. Moises Ortiz Autor

      Hola Alberto, el equivalente en inglés es la función DATEDIF pero lamentablemente no tiene una opción para calcular directamente semanas. Lo que yo he hecho es obtener la diferencia en días y dividir entre 7.

  7. emilio

    MIL GRACIAS.

    SON AYUDAS DE MUCHA UTILIDAD, FÁCIL DE ENTENDER.

  8. ricardo castellanos

    saludos desde Colombia. muchas gracias por todos los aportes, son de mucha ayuda

  9. Carlos Chavez

    Como siempre, gracias por tu aportación. Excelente.

  10. Inocente Alavarez

    Excelente gracias

  11. Adriana

    Muy buen artículo, me ayudó con un problema que tenía. Como siempre muy útil. Gracias!

  12. Gabriel Torres Jaramillo

    Hola Moisés, saludos desde Colombia. Es la mejor clase magistral de Excel que he tenido . Muchas gracias.

  13. sergio

    Muchas gracias por tus aportaciones, cada vez aprendemos mas de los mejores

  14. Fabricio arguello

    excelente esta fórmula, me sirvió de muchísimo, solamente una consulta, podré calcular días y minutos?

    1. Moises Ortiz Autor

      Hola Fabricio, puedes utilizar la función SIFECHA para cálculos con días utilizando el argumento “d”. Te recomiendo leer el artículo que he escrito sobre esa función:
      http://exceltotal.com/la-funcion-sifecha/

      Para obtener la diferencia en minutos deberás no existe una función, pero una vez que tienes los días puedes hace la multiplicación por 1440 que es el número de minutos en un día.

  15. Victor

    Muy buena aplicación
    Gracias

  16. Bernardino Quintero

    Me parece muy buenas todas las explicaciones!!!! y hay funciones que me permite resolver cálculos… que lo hacia por medio de la función SI, me gustaría que me envíe información relacionado a la generación de Macros….!!! me gusta programar en Excel!!!!
    Gracias de antemano!!!

  17. sonia

    Muy bueno!!!! Y muy útil!!!

  18. Javier

    Te soy honesto estoy en la área contable y no te imaginas que ventajas tiene el saber todo!!! esto porque debe ser elemental… para uno… Gracias!!! y te aseguro que estos detalles no se olvidan….

  19. jaime pinto laborderie

    no paren nunca ya que todo es necesario y muy practico para cualquier actividad.
    gracias por hacerlo tan facil

  20. Milthon Churata

    Genial…

  21. Raul Ortiz Rackow

    Buen día Moisés, los ejemplos que subes son excelentes, le abren los ojos a los que somos neófitos, todos los ejemplos están explicados muy bien, mas que bien diría que excelente.
    De que parte del planeta eres, tienes algún correo electrónico, para comunicación, te agradeceré me lo proporciones.

    Saludos Raul

  22. Felix

    Buen tema que se utiliza mucho en el area de recursos humanos- remunreaciones, y que de seguro su uso es muy simple y facil de aplicar

    Saludos

  23. ezequiel

    muy bueno.muchas gracias

  24. feganet

    hola
    excelente articulo me ayudaron mucho mas en mi trabajo

  25. JUAN LUNA

    excelente muy bien explicado

  26. Enrique

    Buenas tardes
    pues de que version de Excel hablas?
    porque no encuentro la funcion y tengo desde la remota xp hasta la 2010

    lo que explicas es interesante y util pero no la encuentro
    agradeceria mucho tu respuesta o comentario

    SALUDOS

    1. Moisés Ortíz Autor

      Hola Enrique, la función SIFECHA ha estado presente desde Excel 95 y sigue existiendo en Excel 2013, sin embargo no vas a encontrar documentación “oficial”, ni ayuda dentro de la herramienta. Solo debes ingresarla en la barra de fórmulas de Excel y utilizarla. Si tienes Excel en inglés, la función a utilizar es DATEDIF.

  27. Boris Ortiz

    Buenisimo, estoy trabajando en una hoja de controles de tiempo y esta función me sera de muchisima utilidad, Felicitaciones!!!!

  28. marina

    Excelente, los felicito, son de gran ayuda

  29. Gaston Alcaino Muñoz

    Señores : Muchas gracias por su ayuda a fomentar el conocimiento y las destrezas. Un Globo de Oro para ustedes.

  30. Ing. Edgar Pentzke

    Estimado Moises Ortiz.
    Gracias por enviar a mi correo Excel Total.

  31. Juan Cifuentes

    Estimado Moises… gracias por tu ayuda en las funciones y fórmulas Excel. En mi computadora acepta el signo punto y coma [ ; ] y no la coma [ , ] para ir separando los datos, por ejemplo: =SIFECHA(A22;HOY();”Y”)&”Años”&SIFECHA(A22;HOY();”YM”)&”Meses”&SIFECHA(A22;HOY();”MD”)&”Días”. En tu fórmula aparece con “coma”, y me indica que no puede aceptar la fómula y me obliga a poner “punto y como”… ¿¿¿¿¿ a qué se debe ?????

    Gracias nuevamente

    atte

    Juan

    1. Moisés Ortíz Autor

      Hola Juan, se debe a la configuración regional de Windows en los equipos. Hay países en donde utilizamos la coma (,) como el separador y en otros el punto y coma (;) por lo que ninguno es incorrecto sino que dependerá de tu configuración. Puedes leer un poco más al respecto en el siguiente artículo:
      http://exceltotal.com/separador-de-argumentos-de-funciones-en-excel/

  32. FLOR

    DE VERDAD GRACIAS POR SUS PUBLICACIONES, ME HAN SIDO DE MUCHISIMA AYUDA,, QUE TENGAS UN EXCELENTE DIA

  33. Marina Franco

    Excelente ayuda estimado Moises, hice la formula, pero no logro separala, años, meses y dias, la refleja toda corrida, pero de gran ayuda, en mi pais Venezuela, funciono con el punto y coma

  34. Luz Dary

    Excelente material!
    Mil gracias

  35. Maria Jose

    Excelente toda la ayuda que nos das! Gracias!!

  36. J. Philippe Bravo

    Como siempre un grandisimo aporte, tuve problemas al principio puesto no reconocia la formula pero era la configuracion de “comas” y “punto y coma”……. pero quedo funcionando como relojito suizo….. un millon de Grax…

  37. RUBEN DARIO JIMENEZ

    GRACIAS POR TAN INTERESANTES TEMAS, CADA DÍA ESTOY APRENDIENDO MAS, CLARO CON TU AYUDA

  38. Claudia Arana

    Excelente!!! Mil gracias!! Ha sido de gran ayuda en mi trabajo!!!!!

  39. Pamela

    Muchas gracias!! me funciona perfecto en excel pero no así en Google Docs, ¿es posible hacerlo aplicar la formula en esa plataforma?
    Saludos y buen día

    1. Moisés Ortíz Autor

      Hola Pamela, desconozco la plataforma Google Docs, así que no puedo ayudarte. Seguramente encontrarás respuesta en los blogs/foros de dicha plataforma.

  40. SERGIO CARLOS

    Mil gracias por la formula de Excel, me ha sido de gran ayuda, espero y sigas apoyándonos a todos compartiendo tus bastos conocimientos.

  41. Florent

    Muchas gracias por tu enseñanza y quisiera plantearte lo siguiente :
    Tengo una hoja de control compartida con los cobaboradores, en donde aplique tu formula calcular años, meses y días entre dos fechas, suprimiendo los valores en cero, el hecho es, que la columna B (fin) en algunos casos no tiene datos ya que es hasta que el cobaorador finaliza la acción entregada, por lo tanto en la columna Diferencia aparece el mensaje #¡valor! ¿Cómo hacer para que cuando en B este sin datos, en D no aparezca el error

    Gracias

  42. Esteban

    Excelente el aporte, gracias me sirve de mucho para saber el tiempo de permanencia del personal en mi trabajo, gracias

  43. Ana Lilia

    Gracias me ayudo mucho, ya estaba algo desesperada…

  44. ManueL

    Excelente este y todos tus aporte, en realidad se te agradece tu esfuerzo. Mil gracias. Te agradecería que me aclararas una duda que tengo: ¿Cómo hago para que en el resultado haya un espacio entre el número y las letras, por ejemplo: 1 año 2 meses 23 días? Es que mi resultado sale todo junto y sin espacios. Reitero nuevamente mi agradecimiento y te envío saludos.

    1. Moisés Ortíz Autor

      Hola Manuel, es necesario que indiques los espacios dentro de las cadenas de texto. Si observas la fórmula de ejemplo notarás que las cadenas de texto tienen espacios al inicio y final: ” años “, ” meses “, ” días”.

  45. Cesar Nieves Cheng

    Buenas tardes
    Te saluda Cesar Nieves
    ¿Queria consultar, porque aplicando la la formula, me sale 1 año. 2 meses, 30 dias, cuando en realidad deberia indicar 1 año, 30 meses?

    F.Ingreso F.Cese Formula Resultado
    26/11/2012 25/02/2014 ´=SIFECHA(A2,B2,”y”) 1 años 2 meses 30 dias

    Por favor si me apoya, es un tema importante.
    Sldos,

    1. Moisés Ortíz Autor

      Hola Cesar, me imagino que querías decir 1 año 3 meses (y no 30 meses).
      La respuesta es que para la función SIFECHA los tres meses se cumplirán hasta el 26/02/2014. Lamentablemente no puedes hacer mucho para cambiar el comportamiento de la función.

  46. Belén

    Muy bueno gracias

  47. Andrés

    Ey¡¡¡ Muy buena tu página, realmente es de mucha ayuda. Justo ayer estaba en un curso de excel avanzado, y el instructor utilizó otras formulas para sacar años, meses y días. Pero ocurrió que los días no estaban bien. Me parece genial tu página, gracias por tu gran aporte.
    Saludos desde Ecuador.

  48. Felipe

    Hola Moises, te agradezco mucho, me han servido demasiado tus formulas y las explicaicones muy claras que empleas ahora me siento mas agusto usando excel. una consulta me gustaria saber si en una misma celda se pueden juntar 2 funciones.. lo que necesito haces es una formula que me diga el año mes y dias por separado.. ya usa esta y me resulta genial en celdas distintas. pero me gustaria que por ejemplo la celda de mes aumentara en 1 si los dias son mas de 15. .. se podra ??

    1. Moisés Ortíz Autor

      Hola Felipe, necesitas utilizar la función SI para condicionar el valor de la celda que tendrá el mes. Por ejemplo, si los días los tienes en la celda M1, la fórmula para los meses sería como la siguiente:
      SI(M1>15, SIFECHA(A2,B2,”ym”) + 1, SIFECHA(A2,B2,”ym”))

      En el caso de que se cumpla la condición de los días, entonces se suma 1 al mes, de lo contrario se obtiene solo el valor de la función. Para saber más de la función SI te recomiendo el siguiente artículo:
      http://exceltotal.com/tutorial-excel-2010-funcion-si/

  49. ennio

    Amigo necesito calcular la edad pero la fecha de nacimiento la tengo en tres(3) celdas, una con el dia, otra con el mes y otra con el año. Que formula uso? gracias de antemano…

  50. César

    Justo esta función que buscaba, gracias amigo, excelente aportación.
    Gracias por compartir.

  51. Wilson

    Muy buen aporte y excelente pagina,
    Tengo una pregunta: como hago para calcular los días calendario, pero además en otra celda, los días transcurridos suprimiendo los dias domingo.
    Muchas gracias

    1. Moisés Ortíz Autor

      Hola Wilson, los días calendario los obtienes con una resta entre la fecha final y la de inicio. Para no considerar los domingos necesitas utilizar la función DIAS.LAB.INTL con su tercer argumento igual a 11 que indica que el día de descanso es el domingo. Te dejo un artículo con más información sobre dicha función:
      http://exceltotal.com/la-funcion-dias-lab-intl-en-excel/

  52. FERNANDO

    EXCELENTE MUCHAS GRACIAS ME FACILITARON EL TRABAJO

  53. GOYO

    QUIERO AGRADECER POR SU VALIOSA COLABORACION.