lunes, 10 de mayo de 2010

Calcular la edad con Excel.

Hace ya algunos meses expliqué el uso de una función poco conocida y descatalogada (diría yo), la función SIFECHA(fecha inicial, fecha final, criterio de cuenta), con la que podíamos calcular diferencias entre fechas...
Buenos, pues un ejemplo de por qué podríamos necesitar diferencias entre fechas es conocer cuál es nuestra EDAD.
Supongamos dos celdas A1 - fecha nacimiento y A2 - fecha a calcular, ya que queremos conocer nuestra edad en una fecha a determinar.
De acuerdo a lo que leímos en cálculo entre fechas, podíamos definir ese tercer argumento 'Criterio de cuenta'de varias formas:
  1. "y" : devuelve la cantidad entera de años en el intervalo de fechas.
  2. "m" : devuelve la cantidad entera de meses en el intervalo de fechas.
  3. "d" : devuelve la cantidad entera de días entre ambas fechas.
  4. "ym" : obtendríamos la cantidad de meses por encima de la cantidad entera de años.
  5. "md" : obtendríamos la cantidad de días por encima de la cantidad entera de meses.

En concreto utilizaremos estos dos últimos parámetros. Supongamos en A1 la fecha de hoy 10/05/2010, y en A2 la fecha 08/05/2013; si combinamos los distintos criterios y concatenamos los cálculos de años, meses y días obtendremos:
=SIFECHA(A1;A2;"y")&" años, "&SIFECHA(A1;A2;"ym")&" meses y "&SIFECHA(A1;A2;"md")&" días"

Calcular la edad con Excel.
haz click en la imagen

45 comentarios:

  1. ¿Por qué está descatalogada o no documentada?

    ResponderEliminar
  2. La función SIFECHA no está descatalogada, de hecho puedes consultar en la página de microsoft sobre ella, lo único es que es una función que necesita de previa instalación y al igual que otras funciones no tiene todas las ayudas que nos gustaría.
    Slds

    ResponderEliminar
  3. ES IMPORTANTE RECOMENDAR A SUS LECTORES QUE ES DIFICIL UTILIZAR LA FUNCION SIFECHA ASI QUE LA FORMA MAS SENCILLA DE CALCULAR EDADES ES RESTAR LA FECHA DE NACIMIENTO DE LA FECHA DE HOY Y DIVIDIR EL RESULTADO ENTRE 365 DIAS DEL AÑO

    ResponderEliminar
    Respuestas
    1. Dificil? es la mas facil que he podido encontrar en la web, esas formulas de dividir entre 365 no son exactas...

      Gracias por la formula, la necesitaba urgente

      Eliminar
  4. Hola,
    no estoy de acuerdo contigo... no me parece que la función SIFECHA sea difícil de utilizar.
    Por otro lado aunque tu propuesta de cálculo de edad, por supuesto, es correcta, tiene el inconveniente de no decirte cuántos meses y días llevas cumplidos, es decir , requieres de algún tratamiento posterior.
    En cualquier caso, gracias por tu comentario.
    Slds

    ResponderEliminar
  5. hola podrian ayudarme me piden que sace las categorias en letras por ejemplo me dicen esto que para informatica y contabilidad debera ser la letra a1 y para ventas a2 para productos a3 y para produccion a4 como ago uso funcion y o funcion ayuda por favor

    ResponderEliminar
  6. Ninguna de las dos propuestas da el cálculo exacto. La segunda de entrada no considera años bisiestos. Saludos

    ResponderEliminar
  7. Hola,
    es complicado darte una respuesta con los datos que aportas, pero parece que lo que te piden ('sacar las categorías en letras' : informatica y contabilidad debera ser la letra a1 y para ventas a2 para productos a3 y para produccion a4) podrías probar a usar un condicional SI...
    Habría que ver el planteamiento con más detenimiento.
    Siento no poder decirte más.
    Slds

    ResponderEliminar
  8. Hola,
    es cierto que la entrada http://excelforo.blogspot.com/2010/05/calcular-la-edad-con-excel.html no es válida cuando entre ambas fechas existe una año bisiesto, habría que pulir la fórmula para tener en consideración este hecho; sin embargo, la anterior http://excelforo.blogspot.com/2009/07/ejemplo-de-calculos-entre-fechas.html si devuelve la diferencia exacta de días, independientemente de si es bisiesto o no, ten en cuenta que al ser una diferencia numérica no toma el número menor como un día entero...
    Slds

    ResponderEliminar
  9. buenos aportes
    como puedo hacer para aumentar una letra
    ejm: en la formula de edad sale un numero
    12/11/1985(fecha inicio) 11/11/2011(fecha final) = 25

    quieno que el resultado sea (25 a)`ò (25 años)
    espero me puedan ayudar
    gracias

    ResponderEliminar
  10. Hola el_taba,
    creo que lo mejor en este caso es darle un formato de celda personalizado con el tipo 0" a" o bien 0" años"

    Un saludo

    ResponderEliminar
  11. El problema surje cuando la fecha inicial es anterior a 01-01-1900. Todo se viene abajo y hay que llevar a cabo otras fórmulas de cálculo.

    ResponderEliminar
  12. Hola,
    efectivamente para fechas anteriores a 1/1/1900 Excel da problemas, ya que no las reconoce directamente...
    Claro, que en esta entrada se trataba de calcular la edad.. y no creo que tratemos muy frecuentemente con personas nacidas antes del 1/1/1900.
    Muchas gracias por la anotación.
    Un saludo

    ResponderEliminar
  13. Hola, yo no tenía ningún problema con la fórmula, pero desde hoy me da problemas con la muestra de cuantos días tiene, por ejemplo, ahora muestra: 0 años, 7 meses y 135 días...
    No sé como corregirlo, porque no he cambiado la fórmula y ahora me lo muestra así. Ojalá pudieran ayudarme! Gracias!

    ResponderEliminar
  14. Hola Tania,
    dime cuáles son las fechas.. por que es muy raro que antes funcionara y ahora sin tocar nada deje de operar correctamente.
    Has comprobado los formatos de las celdas implicadas.. quizá hayan cambiado al tocar otra cosa.
    Slds

    ResponderEliminar
  15. disculpen pero no puedo ver la opción para poner un tema de ayuda no se si me puedan ayudar tengo un problema con vinculación de celdas, bueno pasa que si yo deseo poner una letra en una celda digamos "F" quisiera que automáticamente otra celda aparezca una descripción es decir
    si digito F entonces en otra celda se digite la palabra madera
    si digito D entonces se digite ladrillo sillar
    por favor ayúdenme a vincular esto y si no es posible usar una macro mi correo es hwoarang_baek33@hotmail.com se los agradeceré mucho gracias

    ResponderEliminar
  16. Hola hwoarang_baek33,
    supongo en alguna tabla tendrás las correspondencias entre letras y significado, supongamos lo tienes en la Hoja2 en las columnas A:B (A para el código-letra, y B para el significado); y quieres poner una letra-código en una celda (por ejemplo de la Hoja1 en la A1) y que en otra celda (por ejemplo de la Hoja1 en la B1) te aparezca qué es.
    Entonces escribirías en la Hoja1 en la celda B1:
    =BUSCARV(A1;Hoja2!A:B;2;0)

    Espero lo veas claro
    Un saludo

    ResponderEliminar
  17. MUCHAS GRACIAS eXCELFORO M,E SIRVIO DE MUCHO AUNQUE AL PRINCIPIO ME SALIA ERROR ERA POR QUE EN SU FORMULA LA SEPARACIÓN ESTA CON ; Y BUENO ACA FUNCIONO SOLO CON , GRACIAS ME AHORRARON MUCHO TIEMPO EN UN TRABAJILLO QUE TENGO UN TRABAJO DE DECLARATORIA DE FABRICA EN PLANILLAS GRACIAS FELIZ AÑO

    ResponderEliminar
  18. Hola, yo tengo el mismo problema que la Tania, el año pasado no tenia problemas con las fechas pero este algunas quedaron bien y otras se alteraron por ejemplo ingreso fecha de nacimiento de 27-07-2005 y supongamos que la fecha actual es 18-01-2012 y el resultado sale de esta forma 6 años, 5 meses y 135 días. Espero me puedan ayudar para corregir este problema. Gracias

    ResponderEliminar
    Respuestas
    1. Hola,
      he revisado la formulación y la he probado para todas las versiones de Excel (2003, 2007 y 2010) y con las fechas que das, siempre me da el mismo resultado: 6 años, 5 meses y 22 días
      también he realizado diferentes pruebas con fechas distintas y siempre funciona bien, al menos en mi oridenador (y te aseguro no tiene nada de especial).
      Envíame el fichero de trabajo a
      excelforo@gmail.com
      y lo mirará, repito que es muy raro que hace unos días funcionara perfectamente y ahora deje de hacerlo.
      Cuando pueda revisarlo te comentaré.
      Slds

      Eliminar
    2. Estimado Excelforo, gracias por responder rápido, le cuento que probé la formula en otro PC y funciono bien el mismo ejemplo, lo que me haría pensar que el problema sería de configuración de algún tipo en el actual PC que estoy usando. Nuevamente gracias.

      Eliminar
    3. Si consigues averiguar el problema, que me imagino, entonces que estará en la configuración de Windows, por favor, coméntalo aquí mismo.
      Un cordial saludo!!!

      Eliminar
  19. necesito hallar el dia de nacimiento segun la fecha de nacimiento y saber si el niño es mayor o no deacuerdo a unas fechas

    ResponderEliminar
    Respuestas
    1. Hola Edward,
      no queda nada claro qué pretendes calcular, pero se intuye que necesitas saber si un niño es mayor de edad o no (esto es su edad es mayor o igual a 18) según ciertas fechas.
      Si es así, sólo deberías aplicar la fórmula explicada en este post, si es algo distinto y necesitas saber el tiempo transcurrido entre dos fechas, igualmente te puede servir esa misma función, cambiando el sentido de los parametros.
      Un cordial saludo

      Eliminar
  20. La función SIFECHA, no está descatalogada, lo que pasa es que es una función creada por LOTUS 123 y se puede utilizar en Excel para que el archivo que contenga esta función pueda ser compatible y visto en Excel, existe desde la versión 2000.

    ResponderEliminar
    Respuestas
    1. Hola!!
      Correcto Luis,
      pero al hablar de descatalogada estoy indicando que no existe ayuda sobre ella en las ayudas/catálogos de funciones de Excel.

      De hecho como puedes comprobar en esta entrada se está usando en nuestra hoja de cálculo Excel sin problema.
      Un atento saludo y gracias por la puntualización.
      Slds

      Eliminar
  21. ayuda por favor que alguien me diga como sacar la edad de un niño a traves del curp,urge, que me saca la edad mediante el curp ejemplo degh000715hmnclc01 porque tengo la formular pero saca que tiene 112 años

    ResponderEliminar
    Respuestas
    1. Hola Hector,
      como te he contestado por mail, la fórmula es:
      =SIFECHA((FECHA(SI(VALOR(EXTRAE(F3;5;1))=0;EXTRAE(F3;5;2)+100;EXTRAE(F3;5;2)); EXTRAE(F3;7;2);EXTRAE(F3;9;2)));$A$1;"Y")&" años "

      suponiendo el código CURP en la celda F3.
      Slds

      Eliminar
    2. muchas gracias me sirvio mucho saludos

      Eliminar
  22. Saludos, yo intente colocar la formula mencionada al principio =SIFECHA(A1;A2;"y") no me funciono, le cambie los ";" por "," y tampoco me funciono, podria decirme porque? trabajo en excel 2010.

    Por cierto segui buscando y encontre esta que me funciono.
    =ENTERO(FRAC.AÑO(AHORA(),B3,3))

    Gracias.

    ResponderEliminar
    Respuestas
    1. Hola Rene,
      pues es raro que no te funcione la función SIFECHA, con ; o con ,.
      Probablemente te falta algún complemento por instalar ???

      Muchas gracias, por otra parte, por el aporte de la función FRAC.AÑO... muy buena para trabajar de forma decimal con diferencias de fechas.
      Un saludo

      Eliminar
  23. SALUDOS CORDIALES.
    MIL GRACIAS ME A SERVIDO DE MUCHO TE DOY UN 9 EN LAESCALA 1.....10

    ResponderEliminar
  24. Hola!! Utilizo esta formula para calcular la edad =DATEDIF(A2,TODAY(),"Y") pero cuando no escribo la fecha de nacimiento en la celda A2 o lo mismo esta vacia la celda, el resultado es 113. Como puedo corregir ese error?
    Saludos

    ResponderEliminar
    Respuestas
    1. Hola Hitochi,
      la función DATEDIF calcula la diferencia entre dos fechas, por lo que no tiene sentido que dejes vacío la celda A2... si lo haces, lo toma como fecha 0/0/1900, por lo que siempre te aparecerá con tu función =DATEDIF(A2,TODAY(),"Y") de cálculo de años transcurridos los 113 años desde 1900 hsata 2013...
      Slds

      Eliminar
  25. Gracias por la fórmula. Calculo la edad en años, meses y días.

    Estoy trabajando con sujetos, la fecha de nacimiento y una fecha específica
    Pero tengo el problema de que cuando quiero trabajar con los resultados de los sujetos para ordenarlos (del mayor al menor), por mucho que cambio los elementos entre los datos o defino el formato de celda, no logro ordenarlos.
    Gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola!!
      fijaté que el resultado de la fórmula acaba siendo un formato de texto (es un contenido alfanumérico), por tanto las reglas de ordenación son las de cualquier texto...
      para aplicarles un orden tendrías que separar el cálculo de Años, Meses y Días en tres celdas diferentes, y luego aplicarles en conjunto una ordenación estándar por los tres campos.
      Slds cordiales

      Eliminar
  26. SALUDOS.
    EXCELENTE FORMULACIÓN
    GRACIAS ME A SERVIDO UN MONTON YO TE DOY UN 9.9 EN LAESCALA 1.....10
    -WILCAST-

    ResponderEliminar
    Respuestas
    1. Muchas gracias Wilcast!!! me alegro te haya servido.
      ;-)

      Eliminar
  27. hola, leí los comentarios que aparecen antes y ojalá pudieran ayudarme proporcionándome la fórmula en excel 2010 para obtener la edad de un alumno a partir de su CURP o su RFC. Un ejemplo: VAFJ730524R09 (CURP) o VAFJ730524HASLRS09, la edad de esta persona es 40 años (1973-2013) Tengo más de 1200 alumnos y me es muy dificil hacerlo manualmente. Saludos

    ResponderEliminar
    Respuestas
    1. Hola,
      bueno he de suponer que para conocer la fecha de nacimiento de la persona deberemos obtener la parte del CURP o de su RFC corespondiente, por ejemplo de VAFJ730524R09 sería 730524 que correpondería al 24/05/1973
      Si esto es así deberás aplicar primero una fórmula que extraiga esos valores, si el valor del CURP o RFC está en A2, entonces para conseguir la fecha de nacimiento haríamos:
      =FECHA(AÑO(EXTRAE(A2;9;2)&"/"&EXTRAE(A2;7;2)&"/"&EXTRAE(A2;5;2));MES(EXTRAE(A2;9;2)&"/"&EXTRAE(A2;7;2)&"/"&EXTRAE(A2;5;2));DIA(EXTRAE(A2;9;2)&"/"&EXTRAE(A2;7;2)&"/"&EXTRAE(A2;5;2)))
      sobre esta Fecha ya podrás calcular la edad, empleando la fórmula explicada en este mismo post...
      Espero te sirva
      Slds

      Eliminar
  28. EXCELENTE, MUY RÁPIDO, FUNCIONA MUY BIEN Y LE FUI ADAPTANDO LOS CAMBIOS QUE NECESITABA. MUCHAS GRACIAS

    ResponderEliminar