sábado, agosto 25, 2007

Calcular intervalos en Excel con SIFECHA

Supongamos que la fecha de hoy es el 1/1/2007 y nos preguntamos cuántos días faltan hasta la apertura de los Juegos Olímpico. Si queremos hacer el cálculo con Excel, ponemos la fecha actual en una celda, la fecha de la apertura en otra y en una tercera efectuamos la resta:




Como vemos, 583 días. Si queremos expresar el resultado en términos de años, meses y días, podemos usar la función SIFECHA (DATEDIF en la versión inglesa). Esta función, que es una función total y absolutamente normal de Excel pero no está documentada, excepto en XL2002, a pesar que existe desde la versión 5 de Excel.

La función SIFECHA usa tres argumentos: fecha de inicio, fecha final y tipo de intervalo. Siguiendo con nuestro ejemplo, podemos usar esta fórmula para calcular el intervalo en días

=SIFECHA(A1,B1,"d") que da 583

si queremos calcular la cantidad de meses usamos

=SIFECHA(A1,B1,"m") que da 19, es decir la cantidad entera de meses en el intervalo

y si queremos la cantidad de años

=SIFECHA(A1,B1,"y") que da 1, la cantidad entera de años.

Si queremos calcular la cantidad de días por encima de la cantidad entera de años en el intervalo, usamos el argumento "yd" de la siguiente manera

=SIFECHA(A1,B1,"yd") que da 217, es decir la cantidad de días desde el 01/01/2008 hasta el 06/08/2008

De la misma manera podemos calcular la cantidad entera de meses, por encima de la cantidad de años en el intervalo con

=SIFECHA(A1,B1,"ym") que da 7 (hay que recordar que siempre obtenemos números enteros)

o días no incluidos en la cuenta de los meses

=SIFECHA(A1,B1,"md") que da 5

Como ven, podemos combinar estas fórmulas y exhibir el resultado de la siguiente manera



La función SIFECHA no tiene un argumento que nos permita calcular las semanas. Para esto podemos usar la fórmula

=ENTERO((B1-A1)/7) que da 83

Si queremos expresar el intervalo hasta las Olimpíadas en términos de años, meses, semanas y días, tenemos que usar esta fórmula para calcular las semanas

=ENTERO(SIFECHA(A2;B2;"md")/7), es decir, primero calculamos la cantidad de días "libres" (no incluidos en la cuenta de los meses) y los dividimos por 7.



Si queremos expresar el resultado en una sola celda, incluyendo el texto, podemos usar la concatenación de esta manera

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

Nuestra querida lengua castellana nos complica un poco las cosas, ya que debemos respetar los singulares y los plurales, para lo cual usaremos la función SI

=SIFECHA(A2;B2;"y")&SI(SIFECHA(A2;B2;"y")=1;" año ";" años ")&SIFECHA(A2;B2;"ym")&SI(SIFECHA(A2;B2;"ym")=1;" mes ";" meses ")&"y "&SIFECHA(A2;B2;"md")&SI(SIFECHA(A2;B2;"md")=1;" día";" días")

Como esta fórmula es un tanto larga y engorrosa, podemos incluirla en un nombre para facilitar la lectura de las celdas en nuestra hoja. Lo que hacemos es poner esta fórmula en un nombre



Una aplicación más práctica de esta función es crear una tabla de antigüedad de empleados, como me pedía uno de mis lectores:



En la celda B1 ponemos la función =HOY(), para obtener el día corriente; en las celdas donde queremos calcular la antigüedad usamos el nombre "lapso_rel" que contiene la fórmula usada en "lapso" con una pequeña pero importante modificación. Como hemos de copiar este nombre a lo largo de un rango, debemos usar referencias relativas a las celdas de la fecha inicial de los empleados, pero la referencia a la fecha corriente debe ser absoluta:

=SIFECHA(Hoja1!B3;Hoja1!$B$1;"y")&SI(SIFECHA(Hoja1!B3;Hoja1!$B$1;"y")=1;" año ";" años ")&SIFECHA(Hoja1!B3;Hoja1!$B$1;"ym")&SI(SIFECHA(Hoja1!B3;Hoja1!$B$1;"ym")=1;" mes ";" meses ")&"y "&SIFECHA(Hoja1!B3;Hoja1!$B$1;"md")

Otra variante sería utilizar la función HOY() dentro de la fórmula, en lugar de ponerla en una celda auxiliar

=SIFECHA(Hoja1!B3;Hoja1!HOY();"y")&SI(SIFECHA(Hoja1!B3;Hoja1!HOY();"y")=1;" año ";" años ")&SIFECHA(Hoja1!B3;Hoja1!HOY();"ym")&SI(SIFECHA(Hoja1!B3;Hoja1!HOY();"ym")=1;" mes ";" meses ")&"y "&SIFECHA(Hoja1!B3;Hoja1!HOY();"md")




Technorati Tags:

68 comentarios:

  1. Hola:

    Nuevamente yo. (anteriormente solicite ayuda para conteios ciclicos)

    ahora tengo un dilema.
    debo entregar a un usuario un reporte que le facilite su toma de deciciones
    esto para el area de compras principalmente. el caso es que logre hacer el reporte en cierta forma usando tablas dinámicas, pero no quiero que realice ninguna operacion (suma, multiplicacion, diferencia etc) sobre los datos que agrego a dicha area. es decir simplemente quiero que me los muestre.

    ejemplo:

    tabla: proveedor, marca, estilo, color, talla, costo, descuento, iva, util, precio


    - coloco proveedor como encabezado (ya que las consultas las va a realizar por proveedor)
    - seguido de marca (un proveedor puede tener mas de una)
    - despues en columna Intento colocar El Estilo y tal vez alguno otro de los datos mencionados, pero al Igual que al colocarlos en el area de datos me trata de realizar la Operacion que viene predeterminada.


    el problema que encuentro aqui es q no me da opcion a dejar los datos asi sin Operacion alguna. (Habrá alguna otra forma de hacer esto????)

    lo que el usuario quiere hacer es seleccionar el proveedor y una marca del mismo y
    con ello verá un listado de los estilos (productos) q nos da ese proveedor asi como los demas datos de cada estilo (producto), con lo cual el comprador podrá tener un mayor-mejor criterio para realizar sus pedidos.


    como le mencione con anterioridad ya se hace con la tabla dinámica pero tambien el Excel hace una operacion sobre los datos que le pongo y eso es lo q no quiero
    que sume o promedie los %'s o precios como lo hace actualmente :(



    algo asi es lo que quiero que de de resultado
    proveedor
    marca


    estilos color material costo desc precio util
    1 bco piel 1 3% 5 25%
    2 bco-mno piel 10 3% 50 25%
    1 bco piel 1 3% 5 25%
    1 bco piel 1 3% 5 25%


    espero explicarme. y que me pueda ayudar a encontrar una buena solucion
    gracias y saludos desde mexico.

    ResponderBorrar
  2. Hola!... encuentro increíblemente útil tu blog pero tengo una duda que no logré clarificar.

    Tengo un rango de celdas al cual le asigné el nombre "Validos", y estoy necesitando una fórmula que, al momento de teclear un valor, me diga si existe en ese rango de celdas o no.

    Por ejemplo, si en el rango de celdas tengo 10,20,30,40,50 y en la celda C2 (la que estoy evaluando) meto 10 me dice "Encontrado", pero si meto 20 me dice "No encontrado", es decir, solo me está evaluando el primer elemento del rango, cómo logro que me busque en todas las celdas del rango???

    Ésta es la fórmula que estoy usando.

    =SI(C2=Validos,"Encontrado","No encontrado")

    Gracias por tu atención.

    ResponderBorrar
  3. Hola José Juan
    tu consulta no está relacionada con el tema de la nota. Mandame una copia del archivo o un ejemplo y seguiremos la consulta por mail (jorgedun@gmail.com).

    ResponderBorrar
  4. Gracias!. Es útil tu solución, encontré ésta otra:

    =SI(BUSCAR(C2,cctvalidas)=C2,"Encontrado","No encontrado")

    Donde C2 es la celda evaluada y cctvalidas es el nombre del rango de celdas + 1, es decir, si los datos van de a1 hasta a20 se debe crear el rango desde a1 hasta a21, por qué?, no lo sé jejeje. Saludos!

    ResponderBorrar
  5. En primer lugar felicitarte por tu blog.
    Seguidamente una pequeña corrección
    en la expresión siguiente
    =SIFECHA(A1,B1,"m") que da 1, la cantidad entera de años.

    Las celdas deben referenciarse a A2 y B2 y el tercer parámetro para años es "y"

    ResponderBorrar
  6. Efectivamente Josep. Gracias por la observación.

    ResponderBorrar
  7. Hola Jorge, en realidad se ve que eres todo un Master en Excel, y en realidad agradecía todo el apoyo que has aportado a esta comunidad.

    Pues te comento que tengo un problema y es el siguiente:

    Tengo que llevar el control de una Planillas la cuales posen un serial correlativo.

    Al principio pense es sencillo, resto el ultimo serial por el el serial inicial y me da el numero de planillas en total.

    Cuando me sorpresa me he dado cuenta que me suma un numero de mas, ejmp:

    =C6-B6
    el valor de la Columna c6 es: 3 y el de la b6 es:1 y la formula en excel me da:2 "es logico" 3-1=2, pero sabemos que el numero de existencia de planillas son 3 y no 2.

    Otro ejemplo que realice es este:
    el valor de la Columna c6 es: 121 y el de la b6 es:20 y la formula en excel me da como resultado:101, lógico 121-20=101 pero sabemos que la existencia real de planilla es de 100.

    Que solucion me puede brindar?

    ResponderBorrar
  8. Hola Carlos

    no se si enterpreto correctamente tu consulta, pero cuando calculas una diferencia y quieres que ambos extremos estén incluidos en el cálculo, debes agregar 1.
    Para contar el número de elementos en un rango es más conveniente usar las funciones CONTAR o CONTARA.

    ResponderBorrar
  9. Primero de todo felicitar al autor del blog, que gran descubrimiento acabo de hacer y lo que pienso aprender de él. Gracias por hacerlo posible.

    Un apunte sobre el calculo de las fechas, en el caso que queden 7 dias o mas surge el problema de que nos pone la semanas correctamente pero nos sigue manteniendo los dias. Por ejemplo si pongo fecha 30/08/2008 me salen 4 semanas pero me sigue poniendo 29 dias. Lo he solucionado poniendo en la casilla D5 la funcion RESIDUO(SIFECHA(A2;B22;"md");7) y ya me pone correctamente 1 dia.

    Espero aprender mucho con tu blog, un saludo.

    ResponderBorrar
  10. Saludos, y felicitaciones por el BLOG.

    Mi nombre es Nestor y Cuando uso la función SIFECHA me devuelve error de numero(#¡NUM!), como soluciono esto. Aparentemente no tengo la función "SIFECHA" en el excel 2002 y Excel 2007.

    Saludos

    ResponderBorrar
  11. Hola,
    sí tienes la función en tu versión de Excel. Si no la tuvieras el error sería #NOMBRE?
    El error #NUM! indica que hay algo errado con los argumentos de la función.
    Intenta cambiar el orden de las fechas en la función. En esta función el primer argumento es la fechas "menor". Por ejemplo, si las fechas son 10/07/2007 y 24/10/2007, el primer argumento debe ser la celda que contiene 10/07/2007.

    ResponderBorrar
  12. Hola, para empezar felicitarte por tu blog, esta muy bien. Yo lo que quiero hacer es pasar horas a años, meses, dias y horas. osea imaginate:
    A1= 250horas y que en A2 me pasara esa cifra a lo que dije anteriormente.
    Es para calcular el tiempo trabajado.
    Muchas gracias

    ResponderBorrar
  13. Hola Martín aquí va una explicación breve. Más adelante publicaré en el blog una explicación más detallada.
    Suponiendo que en la celda A1 tienes el número 250 (y no con formato de hora y/o fecha, sino como número), tienes que dividirlo primero por 24. Así que ponemos 24 en la celda A2, y en la celda A3 hacemos la división lo que da 10,416667. En una celda libre pones esta fórmula

    =SIFECHA(0;A3;"y")&" años - "&SIFECHA(0;A3;"m")&" meses - "&SIFECHA(0;A3;"md")&" días y "&HORA(A3-ENTERO(A3))&" horas"

    el resultado será

    0 años - 0 meses - 10 días y 10 horas

    Si en A1 tienes la hora con formato de horas, es decir 250:00:00 (lo que quiere decir que has usado el formato [hh]:mm:ss), no hay necesidad de dividir por 24.

    ResponderBorrar
  14. exelente blog los felicito por esta gran labor de ayudar a los demas y quisera saber si me pudieran ayudar con lo siguiente.... Quisiera hacer una hoja donde me calcule el costo menor que me dan mi proveedor... osea incluir los precios de mis proveedores y que me calculara cual es el costo menor y de que proveedor es ese costo

    ResponderBorrar
  15. Hola
    la consulta no está relacionado con el tema de la nota (esto es un blog, no un foro). De todas maneras, tienes que usar la función MIN para obtener el menor valor de un rango. Luego puedes usar INDICE o alguna otra función de búsqueda para obtener el nombre del proveedor cuyo precio es el que aparece como resultado de MIN.

    ResponderBorrar
  16. Hola Jorge,
    Yo estoy calculando la antigüedad de los trabajadores y no tengo la formula sifecha;:que fórmula puedo usar en su defecto???
    Muchas gracias
    Alicia A

    ResponderBorrar
  17. Hola Alicia

    ¿qué versión de XL estás usando? Creo que SIFECHA ya existía en XL en versiones anteriores a XL97. Por algún motivo, esta función no aparece en la lista de funciones, pero que existe, existe.
    Te recomiendo probar escribir la función con esta sintaxis:

    =SIFECHA(fecha anterior, fecha posterior, "m")

    Si no funciona usar DATEDIF en lugar de SIFECHA.

    ResponderBorrar
  18. Mi estimado, ante todo dejame felicitarte por excelente e ilustrativo Blog. En esta ocasión, recurro a ti para una consulta:
    En la siguiente fórmula, =SIFECHA(A3,B3,"y")&" años, "&SIFECHA(A3,B3,"ym")&" meses y "&SIFECHA(A3,B3,"md")&" días" ´
    Cuál es el significado de los términos "y", "&", "ym", "md". Muchas gracias por tu ayuda, atentamente Héctor.

    ResponderBorrar
  19. Nemi,
    SIFECHA calcula intervalos en términos de años, meses o días. De aquí:
    "y" = años (year en inglés)
    "m" = meses (month)
    "d" = días (days)
    "ym" = la cantidad de meses por encima de la cantidad de años calculada

    Está todo explicado en la nota.

    ResponderBorrar
  20. Muchas gracias por la información, me fue muy últil.

    Sólo hice una pequeña modificación en la información para que me saliera la diferencia exacta de AA/MM/DD

    =SIFECHA(A1,B1,"y") da la cantidad de años desde el 01/01/2008 hasta el 06/08/2008

    De la misma manera podemos calcular la cantidad entera de meses, por encima de la cantidad de años en el intervalo con

    =SIFECHA(A1,B1,"ym") que da 7 (hay que recordar que siempre obtenemos números enteros)

    o días no incluidos en la cuenta de los meses

    =SIFECHA(A1,B1,"md") que da 5

    ResponderBorrar
  21. HOLA DISCULPA LA MOLESTIA TENGO UNA DUDA
    TENGO DOS FECHAS UNA INCIAL Y DE CIERRE
    LA INICAL ES 31/08/2007 Y LA DE CIERRE ES 30/06/2010 SACANDO CON LA FORMULA ME SALE 33 MESES PERO SACANDO A MANO SACO 35 DIAS ESA ES LA DUDA FAVOR SI ME PUDIESES AYUDAR GRACIAS

    ResponderBorrar
  22. Estimado,
    aún calculando a mano desde agosto del 2007 hasta junio del 2010 debe haber 34 meses. ¿Qué fórmula estás usando y con qué argumentos?

    ResponderBorrar
  23. podrian ayudarme como calculo los dias horas y minutos si en diferentes celdas tengo fecha inicial, hora inicial, fecha final y hora final saludos

    ResponderBorrar
  24. Combinando en una celda la fecha inicial con la hora inicial y en una segunda celda la fecha final con la hora final.

    ResponderBorrar
  25. Hola,

    muchas gracias por el post, es muy interesante. Pero no consigo hacerlo funcionar con Excel 2007. Para empezar con algo sencillo, estoy usando esta fórmula:

    =SIFECHA(E2;HOY( );”Y”)

    Me sale un error del tipo #¿NOMBRE?

    Le doy a 'Mostrar pasos de cálculo...' y aparece una ventana que muestra la evaluación de la fórmula:

    SIFECHA(26907; 40810; "Y")

    El número '40810' está en cursiva.
    La expresión "Y" aparece subrayado.

    He probado a cambiar "Y" por "y", "years", "A", "años", ... pero el error persiste.

    ¿Puedes echarme un cable?


    Gracias de antemano.

    ResponderBorrar
  26. Luis,
    el error #¿NOMBRE? indica que Excel no reconoce alguna de las dos funciones SIFECHA u HOY. Revisa las funciones. Otra posibilidad es usarlas en inglés: DATEDIF y TODAY

    ResponderBorrar
  27. estuve como loco buscando la bendita función SIFECHA y no la encontraba, busque en el mismo excel y encontré su equivalente que es FRAC.AÑO.

    ResponderBorrar
  28. No exactamente. FRAC.AÑO calcula en días la fracción de año entre dos fechas. SIFECHA calcula días, años, meses. etc.
    SIFECHA no esta documentada en la ayuda de Excel.

    ResponderBorrar
  29. No encuentro la función SIFECHA por ningún lado, cuando la uso me da un error #NAME?. ¿Que se puede hacer?. Tampoco la reconoce en inglés.

    ResponderBorrar
  30. En inglés la función se llama DATEDIF. Asegurate de poner el tercer argumento (la unidad de tiempo) entre comillas. Si no pones las comillas, por ejemplo

    SIFECHA(A1,B1,ym)

    Excel trata de interpretar ym como si fuera un nombre y al no existir de el erro #NAME!

    ResponderBorrar
  31. Gracias.

    Muy útil si usas todavía Excel 2003.

    Un saludo

    ResponderBorrar
  32. hola quisiera saber si me podrias ayudar con dicha funcion ..estoy haciendo una planilla para ingresar la fecha q ingresa un interno ej.12/02/2000(celda A), en la otra celda coloco el computo de su pena ej.:2años y 6 meses...mi consulta es como obtengo el resultado de la finalizacion de la pena? o sea q m indique la fecha de finalizacion...muchas gracias

    ResponderBorrar
  33. Tienes que hacerlo con la función FECHA.MES. Esta función hace el cálculo por meses, aasí que en tu caso sería
    =FECHA.MES(FECHANUMERO("12/02/2000"),30)

    o si en la celda A1, por ejemplo, está la fecha de ingreso y en la celda A2 los meses

    =FECHA.MES(A1,A2)

    ResponderBorrar
  34. Gracias por la ayuda que nos prestas.
    Mi problema es el siguiente: tengo que calcular los días entre dos fechas para pagos de contratos de trabajo y con la fórmula habitual (día final - día inicio) me da siempre un día de menos; es decir, el día de inicio no lo cuenta. Contempla excel alguna solución o debo poner siempre en la fecha de inicio un día anterior al de inicio real.
    Gracias de nuevo por tu ayuda.

    ResponderBorrar
  35. Más sencillo es sumar 1 a la fórmula:
    (día final - día inicio) + 1

    ResponderBorrar
  36. Hola!!! Felicitaciones por tu blog! Me piden calcular los años que faltan a un empleado para jubilarse, como lo hago? es 60/65 años pero al utilizar ese número y restarlo a la fecha de nacimiento me da #### por ser negativo y porq 60 ó 65 no son formato fecha...eso creo. Me orientas? Gracias, Claudia

    ResponderBorrar
  37. Si usas la función SIFECHA, hay que introducir primero la fecha de nacimiento y luego la fecha actual. Si restas una fecha de la otra, al revés (obviamente, ya que edad negativa carce de sentido).

    ResponderBorrar
  38. Hola, buenas tardes estoy desesperado, hace años confeccioné una hoja de cálculo con Lotus 123 y usé la función @DATEDIF para hallar la diferencia de fechas y obtener un número que, creo recordar, podía ser en años con decimales, es decir, si la diferencia entre dos fechas me daba, por ej. 3.846 dias, el resultado que me mostraba era de 10,54 años y luego usaba @ROUNDUP para redondear por exceso. Estoy intentando hacer lo mismo con SIFECHA en EXCEL 2003, pero no encuentro la manera ¿podría darme una idea?
    Antonio

    ResponderBorrar
  39. Antonio, no sé que resultados daba DATEDIF en Lotus 123, pero DATEDIF en Excel da resultados enteros (días, meses, años, etc, tal como muestro en la nota).
    Ahora, si ponés en una celda =3846/365, el resultado será 10,54...

    ResponderBorrar
  40. Gracias Jorge, esa solución es la que estoy usando actualmente, pero tengo el problema de los años bisiestos, con lo cual la cifra no es muy exacta.
    Gracias de nuevo

    ResponderBorrar
  41. Podrías recibir resultados más aproximados dividiendo por 365,25 (dado que cada cuatro años hay una bisiesto).

    ResponderBorrar
  42. Tengo un problema muy raro con esta función.
    Yo quiero calcular los dias y en excel 2013 (En la pc de casa) me funciona perfecto y en 2007 (en la pc del trabajo, donde quiero usar una base de datos con esta función) y no da bien el resultado!!!

    30/1/14 (Fecha Inicio en A1)
    4/2/14 (Fecha Final u hoy B1)

    Escribo la función en B3
    =sifecha(A1;B!;"d")
    Y me da 5 como resultado. Excelente tanto en excel 2013 como en el 2007
    Pero si escribo "md" para que me de solo los días, me da 5 en excel 2013 pero me da 2 (DOS) en excel 2007!!!
    Como puede ser?
    Y asi da mal culaquier recuento de días en excel 2007!
    Yo puse ese ejemplo para hacer la formula mas corta para probar, pero anda mal siempre
    Quiero calcular en años, meses y días desde
    30/08/2012 hasta
    04/02/2014
    Y me da como resultado 1 años, 5 meses y 2 días!!!
    Y lo real es que son 5 días! (En excel 2013 en casa lo muestra bien al resultado!)

    Ayuda por favor!!!

    ResponderBorrar
  43. Acabo de probar en XL2007. El resultado es 5 en ambos casos. Es decir, tu problema está en otra parte. SI me mandas el archivo podría fijarme donde está el problema.

    ResponderBorrar
  44. DES PUES DE CALCULAR CON SIFECHA LOS RESULTADOS ,COMO SUMO DE MANERA INDEPENDIENTE COLUMNAS CON AÑOS, MESES Y DIAS DE MANERA QUE LOS DIAS QUE SUMAN MESES COMPLETOS PASEN A LA COLUMNA DE MESES Y LOS MESES A LA DE AÑOS? EJEMPLO, EN EL CASO DE LA ANTIGUEDAD DE UN EMPLEADO, PUEDE HABER SALIDO Y ENTRADO DE LA EMPRESA EN VARIAS OCASIONES, CON LO QUE HABRIA QUE SUMAR VARIAS FECHAS PARA SABER SU ANTIGUEDAD.

    ResponderBorrar
  45. Por favor, evita escribir los comentarios usando sólo mayúsculas (es como si estuvieras gritando). En cuanto a la consulta hay varias posibilidades, dependiendo de cómo estén organizados los datos.
    Supongamos que hay una fila para cada período donde en la columna B está la fecha de comienzo del período y en la columna C la fecha de salia. Supongamos que el empleado entró y salió de la empresa en tres oportunidades, Podrías combinar las fechas en la función SIFECHA de esta manera:

    =SIFECHA(B2+B3+B4,C2+C3+C4,"y") te daría el total de años para los tres períodos
    =SIFECHA(B2+B3+B4,C2+C3+C4,"ym") te daría el resto de los meses
    =SIFECHA(B2+B3+B4,C2+C3+C4,"md") te daría el resto de los días

    Nota: dependiendo de las definiciones regionales tendrías que usar "a" en lugar de "y" para los años.

    ResponderBorrar
  46. HOLA QUISIERA QUE ME RESUELVAS ESTA DUDA QUE FORMULA APLICO PARA SUMAR EL RESULTADO DE SIFECHA, ME EXPLICO EL RESULTADO SALE EN C2 5AÑOS4MESES21DIAS EN LA SIGUIENTE FILA C3 SALE 2AÑOS3MESES14DIAS YO QUIERO SABER QUE FORMULA APLICO PARA SUMAR DICHOS RESULTADOS DE FORMA TOTAL..GRACIAS

    ResponderBorrar
  47. Los resultados que indicas son texto, no números. Por lo tanto no se pueden sumar.
    Y por favor, cuando escribas utiliza mayúsculas, minúsculas y por sobre, todo signos de puntuación. Resulta casi imposible leer los que escribes.

    ResponderBorrar
  48. Saludos
    Gracias por la critica constructiva, pasando la consulta anterior que te hice habrá otra formula para obtener el resultado en números y así sumar el resultado final de la suma de las fechas. Gracias por responder con sinceridad.

    ResponderBorrar
  49. En tu ejemplo tienes cuatro fechas, dos que dan el resultado en la celda C2 y dos para la celda C3, Lo que tienes que hacer es utilizar la misma fórmula pero usando la fecha menor y la mayor de las cuatro.

    ResponderBorrar
  50. Perdón si es muy obvio, pero.... ¿por qué en el ejemplo que das la resta arroja 583 días, y con la fórmula SIFECHA salen 581?

    ResponderBorrar
  51. 7 años, 5 meses y dos días después de haber publicado la nota que ha sido vista 38804 veces eres el primero que se dio cuenta del error de imprenta! La fórmula con SIFECHA da también 583 días.

    ResponderBorrar
  52. Hola Jorge, un gusto!! Mira, tengo la siguiente formula:

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

    He probado con diferentes fechas y todo va bien, pero si pongo 31/01/2012 (en C3) y 01/03/2012 (en D3) me arroja como resultado: 0 años 1 meses -1 días
    cuando en realidad es 1 mes y 1 día...
    ¿Qué puedo hacer en este caso?

    Gracias.

    ResponderBorrar
  53. Victor, el resultado es correcto; lo quue no parece correcto es la gramática.Para corregir el problema tendrías que usar una fórmula condicional. Te quedará algo bastante "mosntruoso"

    =SIFECHA(C3,D3,"y")&" "&SI(SIFECHA(C3,D3,"y")=0,"",SI(SIFECHA(C3,D3,"y")=1,"año","años") )& " " &SIFECHA(C3,D3,"ym")&" "& SI(SIFECHA(C3,D3,"ym")=0,"",SI(SIFECHA(C3,D3,"ym")=1,"mes","meses") )& " " &SIFECHA(C3,D3,"md")&" "&SI(SIFECHA(C3,D3,"md")=0,"",SI(SIFECHA(C3,D3,"md")=1,"día","días") )

    ResponderBorrar
  54. Gracias por apoyarme con la gramática, pero el otro problema aún continúa...

    Quizá no lo expliqué bien, mira, la falla está en que cuando se calcula una fecha que está en medio el mes de febrero me resta más días.

    Ejemplo:
    31/01/2012 y 03/03/2012 ----- Resultado: 0 1 mes 1 día

    Cuando realmente el resultado debería ser: 1 mes 3 días.

    Gracias por tu atención.

    ResponderBorrar
  55. Hola Víctor, en el ejemplo anterior las fechas eran 30/01/12 y 01/03/12. Tomando ahora las fechas 31//01/12 y 03/03/12, la diferencia es 1 mes y 2 días, ya que como en toda resta, el primer miembro no es tomado en cuenta (es decie del 30/01 al 31/01 hay una diferencia de un día, pero se trata de dos días).
    Por este motivo siempre tienes que agregar 1 a la fórmula que calcula los días (para que tome en cuenta también el primer día).
    Además hay un error en la fórmula que te puse an el comentario anterior; debe ser

    SI(SIFECHA(C3,D3,"y")=0,"",SI(SIFECHA(C3,D3,"y")=1,"año","años") )& " " &SIFECHA(C3,D3,"ym")&" "& SI(SIFECHA(C3,D3,"ym")=0,"",SI(SIFECHA(C3,D3,"ym")=1,"mes","meses") )& " " &SIFECHA(C3,D3,"md")+1&" "&SI(SIFECHA(C3,D3,"md")=0,"",SI(SIFECHA(C3,D3,"md")=1,"día","días") )

    con el agregado del 1 para que tome en cuenta todos los días del intervalo.

    ResponderBorrar
  56. muy buen post, quisiera hacerte una pregunta; si ya conozco la cantidad en Años, Mese y Dias como puedo calcular la fecha a partir de la cual se genero ese tiempo?
    Osea es como hacer el proceso inverso es posible, gracias por tu colaboracion

    ResponderBorrar
  57. Tendrías que conocer alguna de las dos fechas, principio o fin. La pregunta es si la diferencia conocoida entre las fechas es un dato numérico o textual.
    En el primer caso se trata de una simple operación matemática. En el segundo tendríamos que hacer ciertas manipulaciones para transformar el texto en números.

    ResponderBorrar
  58. hola jorge me podrías ayudar con lo siguiente:
    Tengo la fecha inicial 01/01/2015 en una hoja y luego tengo varias hojas más pero con diferente fecha Ej. 1) 03/04/2015, 2) 07/07/2015, 3) 01/11/2015 y asi sucesivamente como hago para que a partir de la fecha inicial en una celda me presente la cantidad de meses transcurridos por Ej si anota la primera me diga que son 3 meses, si me anotan la segunda que diga que son 6 meses y si anotan la tercera que han transcurrido 9 meses con respecto a la fecha inicial (01/01/2015)

    ResponderBorrar
  59. Con la función SIFECHA, tal como está explicado en el post (si es que entendí tu consulta).

    ResponderBorrar
  60. no encuentro la solución a este problema...como hago para SUMAR Una fecha MAS un valor de dia, mes y año dentro de un Año de 360 Dias. Ejemplo 31/12/2014 + 30 Dias, 12 Meses y 2 Años = El Resultado debe estar Sumado en un Año de 360 dias....Gracias

    ResponderBorrar
  61. no encuentro la solución a este problema...como hago para SUMAR Una fecha MAS un valor de dia, mes y año dentro de un Año de 360 Dias. Ejemplo 31/12/2014 + 30 Dias, 12 Meses y 2 Años = El Resultado debe estar Sumado en un Año de 360 dias....Gracias

    ResponderBorrar
  62. Hola, gracias por la explicación.
    quisiera hacer una pregunta.
    Para ubicar a la persona en una tabla necesito su edad en meses y debo considerar los días por que si el niño tiene 6 meses de edad y 14 días debo mirar las tablas de 6 meses, pero si tiene 6 meses y 15 días debo buscar en la tabla de 7 meses.
    yo use la formula sifecha para sacar edad en meses y días.
    cómo puedo hacer que hasta el día 14 como resultado ponga ese mes (en ej. 6) ó pase al siguiente (7 meses) si son 15 o más días??

    ResponderBorrar
  63. Hola Florencia, supongamos que tus datos están organizados de esta manera:
    columna A: Fecha de Nacimiento
    columna B: meses de vida (calculados con SIFECHA)
    columna C: días, después de descontar los meses (tambipen con SIFECHA usando "md" como parámetro).
    En la columna D podrías poner esta fórmula para calcular la edad "corregida"

    =SI(C2<15,C2,C2+1)

    ResponderBorrar
  64. Interesante. No estaba al tanto del problema. Tal vez por ese motivo SIFECHA es la única función de Excel que no tiene documentación oficial de Microsoft.

    ResponderBorrar
  65. Tengo que calcular la frecuencia anual de revisiones de ciertas máquinas y tengo una columna en la que me indica la fecha de la última revision y otra con el nº de meses que tienen que pasar para la próxima revision. ¿se puede calcular con cuánta frecuencia se hacen revisiones entre 2 fechas?

    ResponderBorrar
  66. Frecuencia en términos de qué período?

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.