viernes, 5 de junio de 2009

Calcular el tiempo entre dos fechas


Descargar el fichero: SiFecha.xlsm


Para calcular el tiempo transcurrido entre dos fechas, podemos restar ambas fechas y nos dará los días transcurridos. Se ha de poner la celda donde se efectua la resta en formato celda GENERAL. Excel utiliza un sistema para trabajar con fechas que consiste en asignar a cada fecha un número correlativo comenzando el 1-enero-1900. Por eso al restar dos fechas nos da el número de días transcurridos entre una y otra.



Hoja1

En Excel existe una fórmula, no documentada en la ayuda y que no figura en el asistente de funciones, denominada:

=sifecha(fecha inicial;fecha final;tipo)

donde:

tipo es el tipo de respuesta que da la función, y puede ser:
  • y Calcula el número de años transcurridos
  • m Calcula el número de meses transcurridos
  • d Calcula el número de días transcurridos. Equivale a restar ambas fechas
  • ym Calcula los meses sin considerar los años enteros transcurridos
  • md Calcula los días sin considerar los años y meses enteros transcurridos


Hoja2

En ésta hoja hemos creado unos controles numéricos que el usuario puede ir modificando para ir aumentando o disminuyendo los años, meses y días.

Podemos calcular la edad en años de una persona, o podemos calcular la antiguedad en la empresa de un trabajador.

Se puede detectar un error de la fórmula tal y como se ve en la celda C7, que aparece de color rojo cuando difiere de la celda D18.


Otro aspecto curioso de esta hoja es la fórmula programada:

=DisplayCellFormula(Celda)

que nos da la fórmula de la celda que se indique.

Código:

'Función que muestra la fórmula de una celda
'Devuelve la fórmula que contiene una celda en lenguaje local
'Si se quita la palabra 'Local' devuelve la fórmula en inglés.
Function DisplayCellFormula(Celda As Range) As String
DisplayCellFormula = Celda.FormulaLocal
End Function

98 comentarios:

  1. muy buena herramienta , me SIRVE MUCHISIMO... pero tengo una duda,,, hay alguna qeu sume en horas ? de una hora a otra hora ? es dcir un poco mas exacto?? muchas gracias

    ResponderEliminar
  2. Excel trabaja con fechas asignando a cada fecha un número correlativo que comienza el 1 de enero de 1900.

    Por ejemplo, el número 40.024 es el día 30 de julio de 2009. Esto lo puedes ver introduciendo la fecha en una celda y luego poniendo esta fecha con formato general. O bien, introduces el número en una celda y la pones luego con formato de fecha.

    La fecha actual la obtienes con la función =HOY()

    Pero si utilizas la función =AHORA() veras que te da el día actual y la hora actual, siempre que tu ordenador este bien puesto en hora.

    Prueba a poner en formato general la celda en la que introdujiste la función =AHORA()

    veras que el resultado lleva decimales. Por ejemplo, 40024,88167
    que se corresponde con la fecha y hora siguiente:

    30/07/2009 21:09

    Para ver una cosa y otra, debes manejar los formatos general y de fecha y hora.

    Para saber el tiempo transcurrido en horas puedes hacer la resta y luego convertir a hora, días, meses, etc.

    Por ejemplo: supongamos que los dos momento que tenemos son:
    40024,88167 y
    40028,12548

    Paso 1:
    Lo primero que hacemos es calcular su diferencia en una celda. El resultado es:
    3,24381

    Paso 2:
    En una celca calculamos la parte entera del valor anterior. Se usa la función =ENTERO(numero). De esta forma obtenemos que han transcurrido 3 días.

    Paso 3:
    Calculamos la diferencia entre la parte entera y el valor anterior. Esto nos da la parte fraccionaria que es:
    0,24381

    Pasos 4:
    La celda que contiene la parte fraccionaria la formateamos con formato de hora del tipo: hh:mm, por ejemplo. Obteniendo el valor:
    5:51 que indica las horas y minutos transcurridos.

    Conclusión, han transcurrido 3 días, 5 horas y 51 minutos.

    Un saludo.

    Adolfo Aparicio

    ResponderEliminar
  3. gracias por la explicacion. me es de mucha utilidad!! mode: copiar pegar en sifecha.xls

    ResponderEliminar
  4. Amigo, no encuentro esa función en el 2007.... XD

    ResponderEliminar
  5. esta todo perfecto, pero si quiero calcularlo en base a dias laborables? sin contar sabados ni domingos ni feriados...algo asi como el dias.lab

    ResponderEliminar
  6. Hola, cómo puedo a partir de 2 fechas, una de inicio y una final, me ponga todos los días del período en columnas, es decir, una columna por fecha. Que el usuario meta las fechas y automáticamente rellene columnas para cada fecha incluyendo la de inicio y la final.

    ResponderEliminar
  7. Hola, me gustaria saber como puedo eliminar un mes concreto en el cálculo de días entre dos fechas
    Muchas gracias

    ResponderEliminar
  8. Hola. Quisiera saber como puedo hacer para realizar este mismo calculo pero excluyendo fines de semana (Sabado y Domingo) y feriados.


    Muchas Gracias.

    ResponderEliminar
  9. Hola Jesus.

    En Excel 2007 no encontrarás esta función en el Asistente de Funciones ya que no existe, pero como podemos comprobar la función SIFECHA funciona estupendamente.

    Un saludo.

    Adolfo Aparicio

    ResponderEliminar
  10. Hola.

    Si quieres contar únicamente días laborables, excluyendo sábados, domingos y feriados, puedes usar la función DIAS.LAB que te da los días que transcurren entre dos fechas, quitando sábados, domingos y los feriados (festivos) que tu indiques en un rango.

    La función DIAS.LAB nos proporciona número de DIAS. Transformar esos días en años, meses y días, sería algo extraño ya que no son cosas homogéneas. ¿Cuántos meses son 60 días laborables?. Responder a esto puede no ser sencillo debido a que la pregunta no parece consistente.

    Un saludo.

    Adolfo Aparicio

    ResponderEliminar
  11. Hola.

    Si deseamos quitar en el cálculo un mes intermedio entre el inicio y el final, o en general un periodo intermedio, lo mejor será aplicar la fórmula dos veces y luego sumar.

    Llamemos a ese mes o periodo que queremos quitar: "periodo de descanso".

    1. Aplicas la fórmula al periodo que va entre la fecha de inicio y el inicio del periodo de descanso.

    2. Aplicar nuevamente la fórmula al periodo que va desde el final del periodo de descanso hasta el final del periodo total.

    Sumando ambos resultados obtendrías lo que quieres.

    Un saludo.

    Adolfo Aparicio

    ResponderEliminar
  12. Hola Adolfo tengo un problemilla con una hoja donde registro los tiempos de trabajo del personal a mi cargo, en muchos casos el personal trabaja en turno nocturno, por lo que hay hora de inicio de 23:15 y fecha de termino de la actividad de 2:40 del siguiente dia, es decir han trascurrido 2 horas y 25 minutos, pero me aparece ###### porque toma horas negativas.. ¿que puedo hacer?

    ResponderEliminar
  13. Hola Chava.

    Excel trabaja con fechas asignando un número correlativo que comienza el 1 enero del año 1900. Por ejemplo, hoy día
    17-ene-2011 corresponde al número: 40.560. Eso lo puedes ver poniendo la fecha en una celda y dándole formato de celda GENERAL.

    Las horas funcionan como decimales de esa hora: Por ejemplo, la función =ahora() te da un número con decimales. En este momento (cuando escribo) la función me da este valor: 17/01/2011 21:19
    y si esa celda la pongo con formato GENERAL veo el número: 40560,88831.

    Al dar formato a ese número en formato de fecha para que se vea el día, junto con la hora y lo minutos, puedes controlar el tiempo.

    Con formato personalizado puedes ver hasta los segundos.

    Por tanto para calcular el tiempo entre dos instantes que estan en dos fechas distintas lo aconsejable es trabajar con esas fechas con decimales.

    Por ejemplo, supongamos estas dos fechas y horas:
    inicio: 17/01/2011 21:19:10
    final: 18/01/2011 2:20:34

    Equivale a la diferencia entre los números:
    inicio: 40560,88831
    final: 40561,09762

    La diferencia entre esos números puesta en formato de hh:mm:ss proporciona el siguiente resultado:

    5:01:25
    que se lee como 5 horas, un minuto y 25 segundos.

    Espero que estas ideas te sirvan.

    Un saludo.

    Adolfo Aparicio

    ResponderEliminar
  14. Excelente aporte. muchas gracias por su valiosa ayuda, a los que nos iniciamos en esta potente herramienta, resulta muy útil los consejos que das.

    Tengo una duda, cómo hago para obtener una edad exacta tomando como referencia una fecha 14/12/2007 (como actual) y las otras son fechas de nacimiento, por ejemplo, 06/09/1942. Al aplicar la Función que Ud. recomienda,la cosa anda bien, pero, cómo puedo precisar una fecha y revelar una edad real, por ejemplo, en una situación distinta, empleamos la función ENTERO y dividimos entre 365 días, para evitar que excel nos de una fecha adelantanda en edad (antes de haber cumplido dichos años). Ojalá me deje entender, de todas formas, estaré pendiente de su respuesta.

    Atentamente,

    David Tacza Ramírez
    Cerro de Pasco-Perú

    ResponderEliminar
  15. Hola dataramiz.

    Para calcular la edad se puede utilizar una APROXIMACIÓN dividiendo entre 365, pero el resultado no es exacto.

    Para obtener un resultado exacto puedes consultar este otro artículo (Post):

    Edad

    Un saludo.
    Adolfo Aparicio

    ResponderEliminar
  16. Estimado Adolfo:

    Gracias por la respuesta acerca de las fechas. Tengo un nuevo problema, mira, estve aplicando la Función BUSCARV en el siguiente caso:
    Hoja 2, contiene un listado de productos diversos, en ella se especifica CÓDIGO DE PRODUCTO, DESCRIPCIÓN, PRECIO, CANTIDAD EN STOK, entre otros datos, es una tabla que tiene cerca de 70 ítems. En la Hoja 3, he creado una boleta de venta, en ella he podido hacer que reconozca los productos, precios unit y totales, con otras condiciones más que complementan la boleta.

    Bueno, el prolema que tengo es:
    - Como hay una serie de productos que consigno en la boleta por cantidades, por ejemplo, 10 quesos cuyo precio unit. es y precio total es..., quiero, que cuando señalo que son 10 quesos, se reste automáticamente al stok existente.
    - Para intentar resolver el asunto, he insertado una columna adicional, cerca al de Stok de origen, la he llamado Stok actual, pretendo que ahí salga el resultado, pero nada de nada.

    Por favor, ayúdame, espero me haya dejado entender.

    Mil gracias anticipadamente, estaré pendiente de la respuesta.

    Atentamente,

    David Tacza Ramírez
    Pasco-Perú

    ResponderEliminar
  17. Me olvidaba un dato adicional del problema de la Boleta y la función BUSCARV.

    El rango utilizado por la columna Stok original es Hoja2 (F4:F80), la columna nueva de Stok actual es Hoja 2 (G4:G80), se supone que aquí debe salir la resta. Los datos con los que debo restar, están en la Hoja 3 (C14:c25), aquí he ingresado la cantidad de productos comprados por ítem.

    NOTA: Los códigos de los productos, de la Lista de productos (base) están en el rango (a4:a80) de la Hoja 2; los de la Boleta de Venta, están en la Hoja 3, rango (b14:b25).

    Gracias nuevamente.

    David Tacza Ramírez

    ResponderEliminar
  18. Esimado amigo, muy valioso su aporte, pero tengo un inconveniente, al utilizar =SIFECHA
    =SIFECHA($B2,$A$6,"y"), pero me sale el siguiente error #¡NUM! y con el =dislplaycellformula(A7) me sale el error #¿NOMBRE?, e consultado en la ayuda, pero el error persiste, o es necesario alguna configuración excepcional del excel, tambien ya vi en opciones de excel en cambios iterativos, el error persiste, por favor ayuda, ya que recien me estoy inicando en el excel. Muchas gracias por tus valiosas publicaciones
    saludos
    Alessandro T - Peru

    ResponderEliminar
  19. Hola a todos. Tengo el siguiente problema y no se como solucionarlo.
    En una hoja excel he creado dos pestañas. En una tengo un modelo de vale de permiso de empresa. En la otra todos los dias del año en la columna A, y en la columna B una "X" señalando los dias que no se trabajan. Mi problema es que en el vale de sallida pongo dos fechas: la de inicio de la falta a la empresa y la fecha final. Quiero que se resten estas fechas, que incluya a ambas en el resultado y me reste aquellos dias que en la segunda pestaña estan marcados con una "X".

    ResponderEliminar
  20. Hola Laura.

    Existen dos funciones en la categoría de funciones de Fecha y hora que te puede interesar conocer. Son:

    =DIA.LAB
    =DIAS.LAB

    Permiten calcular el número de días laborables entre dos fechas, o entre una fecha inicial y un número de días naturales hacia adelante. Y en ambos casos permite excluir las fechas de días festivos (feriados) que tu indiques en un rango.

    Un saludo.

    ResponderEliminar
  21. Muchas gracias por la entrada, Adolfo. ¡Una auténtica maravilla!
    Pero rizando un poco más el rizo... ¿Hay alguna forma de que el resultado en meses sea entero o en fracciones de .25, .5, .75?

    ¡Gracias de nuevo!

    ResponderEliminar
  22. Hola Ainhoa.

    No se si entendí bien tu pregunta. Supongamos que el número de meses es 12,65 (valor que está en la celda A1) y necesitas obtener fracciones de 0,5.

    Puedes poner la siguiente fórmula:

    =ENTERO(A1*2)/2

    así obtendrás el valor 12,5 que indica que han transcurrido un número de meses mayor o igual a 12,5 pero menor que 13.

    Un cordial saludo.

    ResponderEliminar
  23. disculpe por la molestia pero quisiera preguntarle como puedo cambiar el valor de la celda de fecha final quiero pner una fecha limite por ejemplo si un niño nacio el 12/06/2000 yo quiero calcular su edad hasta el 01/09/2011 por eso pregunto como se puede cambiar la formula de la celda de fecha final para en vez de que ponga la fecha "hoy" ponga la fecha 01/07/2011.. gracias perdon por la molestia.

    ResponderEliminar
  24. Hola Luis.

    Si quieres calcular hasta una fecha concreta en lugar de hasta la fecha actual dada por la fórmula =HOY(), lo que debes hacer es sustituir la fórmula HOY por la fecha que quieras.
    Para ello simplemente escribe la fecha en esa celda, con un formato de fecha válido. Por ejemplo, 01/07/2011

    Un saludo.

    ResponderEliminar
  25. no me sale la formula u.u necesito sacar años de servicio d una empleado tengo q resta la fecha actual menos cuando empezo pero no se como :S la fecha del empleado es 06/09/1987

    ResponderEliminar
  26. Hola AnMiPuSa*

    En la Hoja2 del fichero SiFecha.xls coloca la fecha inicial en la celda B3, y la fecha final en la C3.

    En tu caso si pones como fecha incial el 6-sep-1987 y como fecha final el 15-oct-2011 el resultado que obtienes es de 24 años, 1 mes y 9 días.

    Un saludo.

    ResponderEliminar
  27. Hola una consulta, necesito sumar más de tres fechas para obtener el dato en años, meses y días, he utilizado la fórmula "sifecha" pero esta me da el rango entre dos fechas y son tres las que necesito tomar en cuenta ejemplo, en el primer rango me da (utilizando "sifecha) 2 años 3 meses y 25 días, en el segundo 3 años 2 meses y 15 días y en el tercero 12 años, 9 meses y 1 día, cómo hago para sumar estos datos ya que por estar con fórmula me da error???

    ResponderEliminar
  28. Tu Blog me esta ha resultado muy util, pero tengo un problema quiero resta 2 fechas entre el 5/12/2011 y el 20/12/2011, y tiene que darme 10 dias laborales y no se muy bien como indicar las 2 dias fectivos que hay ( 6 diciembre y 8). Igual puede tambien tenga un problema de formato, y no debo usando mal tanto dias.lab o dia.lab

    ResponderEliminar
  29. Hola Maria José.
    En A1 pon la fecha inicial, en A2 al fecha fina. En B1 y B2 pon las fiestas. Y luego en en A3 pon la fórmula:
    =DIAS.LAB(A1;A2;B1:B2)
    veras que el resultado es 10.

    Imagen de ejemplo

    Un cordial saludo.

    ResponderEliminar
  30. Estimado Adolfo
    El 26/12/2011 cumplo 59 años pero al restar 26/12/2011 - 26/12/1952 (mi año de nacimiento) me sale 21549, si esto lo divido entre 59 me debería salir 365 pero me sale 365.24 con lo que dicho de otra forma, esta fórmula no me permite hallar mi edad. Hay otra manera?
    Gracias

    ResponderEliminar
  31. Hola xandres26.

    Para determinar la edad puedes utilizar la fórmula que se explica aquí:

    Edad

    Un cordial saludo.

    ResponderEliminar
  32. Muy agradecido Adolfo! Un gran saludo!!!

    ResponderEliminar
  33. ¿Cómo puedo calcular el número de horas festivas en un turno de trabajo que empiece o acabe entre un día laboral y un día festivo?
    Gracias

    ResponderEliminar
  34. HOLA ADOLFO, GRACIAS POR TU APORTE PERO TENGO UN PROBLEMA, CUANDO POR EJEMPLO PONGO EN LA FORMULA COMO DIA DE INICIO 1-1-12 Y COMO FECHA FINAL 8-1-12 ME DA COMO RESULTADO 7 DÍAS TRABAJADOS CUANDO EN REALIDAD SON 8 ¿COMO LO ARREGLO? SALUDOS DESDE ARGENTINA

    ResponderEliminar
  35. Hola Patricia.

    Simplemente suma uno a la fórmula, cuando quieras que las dos fechas extremas queden incluidas.

    Un saludo.

    ResponderEliminar
  36. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  37. Hola Adolfo, alguien dijo que no encontraba la funcion en excel 2007, y tu le dices q no existe pero que funciona.
    Mi pregunta: como escribo la formula en ingles, tengo instalado microsoft office en ingles. Ayudame por favor. De antemano muchisimas Gracias.

    ResponderEliminar
  38. ¿Hay alguna forma de hacer que me calcule el número de meses naturales enteros que hay entre dos fechas?

    Por ejemplo:

    Ejemplo 1

    F.Inicio: 02-04-2012
    F.Fin: 10-05-2012

    Esto debería dar 0 meses y 39 dias.

    Ejemplo 2

    F.Inicio: 01-04-2012
    F.Fin: 10-05-2012

    Esto debería dar 1 mes y 10 dias.

    Ejemplo 3

    F.Inicio: 29-02-2012
    F.Fin: 10-05-2012

    Esto debería dar 2 meses y 11 dias.

    Se que es un poco complicado, pero es que no consigo hacerlo.

    Un saludo.

    Alfredo.

    ResponderEliminar
  39. Hola buenas noches. . Necesito calcular antuguead del trabajador en años y dias. Al hacrr la formula.=sifecha(b1,c1,"y") . Me da los anos y al poner sifecha(b1,c1,"yd" no me calculas los duas exactos. Ejemplo 20-04-1978fecha final 12-05-2011

    ResponderEliminar
  40. Maestrazo!!!!...No sabes cuanto me sirbio tu tip para el calculo de los dias y horas transcurrdios entre dos fechas y horas. A partir de hoy soy tu fan

    ResponderEliminar
  41. Buenos dias, muy interesante la formula, pero estoy calculando los dias de mora de unas facturas, cuando llego a las facturas que no se han vencido sale error en la formula #¡NUM! y no entiendo el porque, una ayudita por favor

    ResponderEliminar
  42. De antemano, mil gracias por ayudarnos tanto en todo momento. Mi duda es la siguiente.

    La fórmula para calcular los días entre dos periodos, me fue de gran utilidad, pero, yo necesito poner un tope. Es decir, necesito una fórmula que me indique, partiendo desde una fecha inicial, cuando se cumplen 180 días.
    Ejemplo:
    Desde el 01/01/2013 trascurrirán 180 días el DÍA 29/06/2013.
    Habría alguna posibilidad que me indicara cuando vencen esos 180 días?
    Me sería de gran ayuda, porque para mi trabajo es fundamental, y no doy con ello yo sola
    Muchas gracias
    Vanessa

    ResponderEliminar
  43. Muchas gracias Adolfo por este post muchos éxitos

    ResponderEliminar
  44. Hola Adolfo
    tengo un problema para realizar un cálculo de 'hora media' cuando hay un cambio de día de por medio. Pejemplo:
    col A Col B

    23:14:49 23:14:49
    22:42:22 22:42:22
    0:18:39 0:18:39 <---- en B3 he añadido manualmente 01/01/1900
    22:15:50 22:15:50 <--- suma de las tres horas
    15:25:17 23:25:17 <--- Suma/3 , para sacar la media de horas



    Como verás en la columna A da una media no válida , la correcta sería la de la columna B.

    Lo que quiero es que, recorriendo la columna B, cuando detecte que ha cambiado de dia, le ponga que ya es el día siguiente (01/01/1900).
    Gracias de antemano y un saludo.

    ResponderEliminar
  45. Hola Yola.

    He añadido una tercera hoja en el libro de Excel, de este post SiFecha.xls que puedes descargar pulsando el enlace que tienes al inicio del post.
    En esa tercera hoja he añadido un ejemplo de cómo se calcula el tiempo medio de tres procesos.

    Tienes razón al decir que si el resultado dura más de 24 horas la media no se calcula bien. Espero que con el ejemplo se entienda bien lo que tenemos que hacer para que el resultado sea correcto.

    Un saludo.

    ResponderEliminar
  46. Hola Adolfo
    Ante todo gracias por atención y por la respuesta, aunque no me vale del todo, pues, a mi me llega un listado con muchas horas, algunas de antes de las 23:59 y otras pasadas las 00:00, como en el ejemplo que puse q llegaban 00:18 o pueden llegar las 01:... . Yo visualmente se que ahí ha habido un cambio de día, pero si no meto de manera manual la fecha 01/01/1900 o que en vez de 00:18 ponga 24:18, no me sale bien la hora media.
    Espero haberme explicado. Gracias y un saludo .
    Yola

    ResponderEliminar
  47. Hola Adolfo, te ruego puedas ayudarme con la siguiente consulta,
    tengo un rango de fechas (inicial y final) que abarca tres meses, lo que necesito es contar la cantidad de días de cada mes en tres columnas, cantidad de días mes anterior, mas actual y mes siguiente y en caso de q en algún mes no existan días en la columna salga 0 días

    ResponderEliminar
  48. muy util tu explicacion, y muy bueno la hoja de calculo que compartes, gracias, es lo que buscaba. Pero puedes decirnos si esa funcion "datedif" seguira existiendo en nuevas versiones de excel? o por que no esta documentado?, gracias y saludos

    ResponderEliminar
  49. Necesito saber como hacer unas formulas en excel, espero que alguien me pueda ayuda. Es para realizar cálculos de beneficios de personas privadas de libertad. Tengo una columna con fecha de detención y otra con la sentencia. Las fórmulas deberían calcular primero una columna para las salidas transitorias que es exactamente a la mitad de la sentencia. Otra columna para calcular la libertad condicional que es a los dos tercios de la sentencia. Otra columna para la libertad asistida que son dos: una 6 meses antes de la condicional y otra 6 meses antes de agotar la pena.

    ResponderEliminar
  50. Hola Rafael.

    Te he creado un ejemplo en Excel. Puedes descargarlo aquí:

    https://app.box.com/libertad

    Comprueba si en las fórmulas se ha de añadir un día más, o no según indique la legislación. Ya que cuando sale un número de días con decimales no se si la legislación obliga a que transcurra el día entero.

    Un cordial saludo desde Madrid.

    ResponderEliminar
  51. hola adolfo aparicio quisiera saber como puedo calcural los dias habiles entre dos fechas excluyendo los domingos y feridos (festivos) sin excluir los sabados me serviria de mucho tu ayuda ya que la nesecito para implementarla en mi trabajo

    ResponderEliminar
  52. Hola Bray.

    Mira este post por si te puede dar ideas:

    http://www.excelavanzado.com/2011/08/tiempo-de-respuesta.html

    Un saludo.

    ResponderEliminar
  53. Hola Adolfo:
    Siguiendo lo explicado con respecto a personas privadas de su libertad. Por Ej. Transitorias, Libertad Condicional, Libertad Asistida, lo cual espero que a Rafael le sirva. Bueno en nuestro caso solo dio resultado para un solo caso. En definitiva lo que quisiera saber es "el tercio de una condena o sentencia(tomando los valores de condena), las salidas transitorias (mitad de su condena o sentencia), libertad condicional que son los dos tercios de su condena y libertad asistida que seria seis meses antes de su cumplimiento de condena, solo se da si el detenido es declarado reincidente.
    Lo que estaría discriminado en columnas con: "Fecha de detención";"Condena";"Reincidente(si;No)""un Tercio";Salidas Transitoria","Lib.Condicional" y "Lib.Asistida"
    Por Ejemplo (trabajo terminado)
    - ("F.Det."=12/05/13); ("Condena"=6 años y 08 meses);
    ("reincidente=no"); ("Un Tercio"=seria 2 años, 2 meses y 20 dias y quedaría definido 22/07/15); ("Salidas Transitorias"= 3 años y 4 meses quedaría: 12/09/16); ("Lib.Condicional = 4 años 5 meses y 10 dias lo que quedara en 22/10/2017); Cumplimiento de condena = 12/01/2020.
    Nota: lo que me tendria que detallar son las fechas.

    Ejemplo 2: ..."que pasaria si le dan una condena de 4 años, 1 mes y 13 dias. no es declarado reincidente. Bueno en su ejemplo da los resultados, solo faltaria obtener el tercio.."
    Espero que me halla entendido. Desde ya muchas Gracias.

    ResponderEliminar
  54. Hola Adolfo. Tengo el siguiente problema. necesito contar el número de días entre dos fechas, pero sin tener en cuenta los 29 de febrero, es decir que todos los años tienen 365 días y los 29 de febreros no existen. Muchas gracias

    ResponderEliminar
  55. hola, necesito una formula que me de las fechas exactas saltandose fin de semana y feriados. Sabes si existe alguna formula que me de la fecha exacta, no dia.lab que solo cuenta los dias?

    ResponderEliminar
    Respuestas
    1. Hola camilaolivos.
      He creado un vídeo que explica lo básico en temas de fechas en Excel. Aquí puedes ver cómo obtener la fecha laborable que sigue a un periodo donde tú indicas la fecha inicial, la final y los días festivos (feriados) que se han de eliminar.

      http://youtu.be/pQBwbI3D_Ek
      Un saludo.

      Eliminar
  56. hola, necesito una formula que me de los dias exactos saltandose fin de semana y festivos. Sabes si existe alguna formula que me de los dias exactos.

    ResponderEliminar
  57. Hola Adolfo,

    Espero y me puedas ayudar u orientar como puedo hacer un calculo que se me esta complicando.
    Pero la verdad esta medio complicado sera posible que me proporciones un correo para enviarte como estaría el esquema de el caso.

    Saludos.



    ResponderEliminar
    Respuestas
    1. Hola Cesar.
      En esta página, arriba a la derecha, aparece mi perfil y en él se encuentra la dirección de correo electrónico.
      Un saludo.

      Eliminar
  58. Estimado:
    Tengo un pequeño problema que no he podido resolver.

    Ejemplo: tengo 2 fechas: 20-12-2013 y 17-01-2014.
    Necesito determinar que meses son y cuantos dias corresponden a cada mes, ya que debo valorizar por un factor que cambia mes a mes.
    El resultado debe ser, para este ejemplo, 12 días de diciembre y 17 días de enero, es importante el año también, por el asunto del factor.
    Esperando puedas ayudarme,
    Saludos
    Rodrigo

    ResponderEliminar
  59. estimado, necesito de tu ayuda...
    tengo que calcular el tiempo de término para un proceso, en el cual se trabaja por turnos que pueden variar... por ejemplo, si el proceso comienza a las 12:00 del 21-10-14 y dura 8 hrs trabajando a 1 turno (de 8:00 a 17:30), la respuesta debería ser 10:30 del 22-10-14... si se trabajase a 2 turnos (de 8:00 a 17:30 y 21:30 a 07:00), la respuesta debería ser 00:00 del 22-10-14...
    espero me puedas ayudar
    saludos y gracias
    Rodrigo

    ResponderEliminar
    Respuestas
    1. Hola Rodrigo.
      Puedes revisar las siguientes entradas por si alguna te da ideas para tu trabajo.
      http://www.excelavanzado.com/search/label/fecha

      Eliminar
  60. Buenos dias,
    Tengo un pequeño problema que no he podido resolver.

    Ejemplo: tengo 2 fechas: 28-11-2013 y 11-01-2014.
    Necesito determinar que meses son y cuantos dias corresponden a cada mes, ya que debo periodificar el gastos de las facturas de suministros.
    El resultado debe ser, para este ejemplo, 2 días de noviembre, 31 dias de diciembre y 11 días de enero, es importante el año también.
    le estaria muy agradecida, ya que no he sido capaz de poder hacerlo.
    Reciba mi mas cordial de los saludos.
    Rodrigo


    ResponderEliminar
  61. Buenos días a todos,
    Tengo un problema que llevo unos dias mareando.
    Tengo que elaborar una plantilla en la que tengo en la misma celda dia y hora con dos celdas una de inicio y otra de fin y necesitaría calcular las horas laborales que han pasado desde la fecha/hora inicio y la fecha/hora fin.
    El resultado lo necesito en horas.
    Podríais ayudarme con esto???
    Un Saludo,
    Jess

    ResponderEliminar
  62. hola,

    Necesitaría saber entre un intervalo de fechas, los días que corresponden a un mes en concreto. Como ejemplo, saber los días de enero entre el 11.01.2015 y el 25.5.2015 y así sucesivamente con distintos intervalos y meses en concreto. Sería como incluir una condición (mes en particular) al calculo de dias entre un intervalo de fechas.

    Muchas gracias.

    Un saludo,

    Carlos

    ResponderEliminar
  63. Necesito ayuda ,por favor

    Es un poblema donde necesito una formula donde la antiguedad y las vaciones esten incluidas ejemplo 1 año es igual a 6 dias de vacaciones , 2 años es igual a 8 dias de vacaciones y por cada año va aumentan 2 dias mas de vaciones , pero el problemas que no hay limite de "ANTIGUEDAD" como le puedo hacer para no poner toda la formula de esta forma "=si(h2=1,6,si(h2=2,8 ...... y asi sucesivamente . ME PONDRAN AYUDAR CON ESTO

    ResponderEliminar
  64. Buen día Adolfo! eres lo máximo!, un genio!

    recurro a tu ayuda ya que necesito una formula para ranguear fechas y colocar un texto, por ejemplo tengo una columna de fechas:
    08/02/2014 --> "Semana 20"
    09/02/2014 --> "Semana 20"
    11/02/2014 --> "Semana 20"
    14/02/2014 --> "Semana 20"
    15/02/2014 --> "Semana 22"
    22/02/2014 --> "Semana 24"

    necesito que en otra columna me arroje los textos citados, para las fechas del 08/02/2014 al 14/02/2014 = Semana 20

    Muchas gracias,

    sldos Joanna.

    ResponderEliminar
    Respuestas
    1. Hola.
      ¿Por qué va de dos en dos semanas?. Si del 08/02/2014 al 14/02/2014 = Semana 20?. ¿No debería ser la siguiente la semana 21?. ¿No debiera ser del 015/02/2014 al 21/02/2014 = Semana 21?

      Eliminar
  65. Hola buenas noches Adolfo estoy usando esta formula DATEDIF(H11,J2,"yd") & " Days " para calcular los dias entre fechas , pero lo que quiero hacer es que automaticamente la celda se rellene de algun color dependiendo de los dias transcurridos, como le puedo hacer , me puedes ayuar por favor .

    de antemano agradezco su atencion y ayuda ,

    saludos y gracias.

    ResponderEliminar
    Respuestas
    1. Hola.
      He creado una nueva entrada del Blog para intentar contestar a tu pregunta. Puedes verlo en el siguiente enlace.
      Días por meses

      Eliminar
  66. Adolfo recién envié una pregunta y no se si lo he hecho correctamente, la reitero por las dudas.
    Tengo el siguiente problema, tengo 2 fechas ej. 24/04/14 y 30/03/15. Necesito saber cuantos días hay entre esas fechas discriminado por mes y por año porque como ves cambia de año.
    Un saludo cordial

    ResponderEliminar
    Respuestas
    1. Hola Federico.
      Puedes ver un fichero donde se resuelve este tema por varios métodos. Es el siguiente:
      dias_por_meses.xlsm

      Un saludo.

      Eliminar
  67. Hola Adolfo, intento usar SIFECHA en excel 2010 y no me lo permite. Arroja error. (#¿NOMBRE?). Como hago?

    ResponderEliminar
    Respuestas
    1. Hola Roman.
      He probado en Excel 2010 y si me ha funcionado. Te cuento lo que he probado.
      En la celda A1 pones una fecha inicial, por ejemplo 16/01/2004
      En la celda A2 pones una fecha final, por ejemplo 14/05/2015
      En la celda A3 pones la fórmula que es:
      =SIFECHA(A1;A2;"y")
      El resultado que da es 11, que son los años transcurridos.
      Pruébalo, y te debería funcionar.
      Si lo que quieres hacer es poner la fecha dentro de la fórmula debes hacerlo así:
      =SIFECHA(38002;42138;"y")
      o bien así:
      =SIFECHA(FECHA(2004;1;16);FECHA(2015;5;14);"y")
      Observa que la "y" debe ir entre comillas.
      Un saludo.

      Eliminar
    2. Román... me pasaba lo mismo... escribí bien la fórmula muchas veces y siempre me salía ese error... hasta que descubrí cual era el problema... debes seleccionar la celda A3 (donde quieres que aparezca la edad o años transcurridos) y abrir "formato de celda", Número, Número. Una vez ahí te fijas que aparezca un número entero en el recuadro de "ejemplo".

      A mí automáticamente se me cambiaba a formato de fecha... y se desconfiguraba el resultado... impidiendo que apareciera el resultado en años, meses y días.

      Espero te sirva a tí y también a otros que hayan pasado por la misma situación.

      Eliminar
  68. hola Adolfo como lo puedo hacer para que excel me calcule 130 días en 18,4 semanas
    que formula puedo ocupar?

    ResponderEliminar
  69. Buen dia Adolfo,

    Quisiera hacerle una consulta referente a la interseccion de fechas en filas diferentes, teniendo en cuenta que en las filas se manejan dos fechas una inicio y una final, ejemplo:
    Tengo un hoja con los codigos de empleados de una empresa y para cada empleado se usa una fila que cuenta las fechas inicio y final de sus vacaciones, lo que quisiera es que excel me marque de alguna manera los empleado cuyas fechas se intersecten, así empleado 1 con fecha inicio vacaciones 01/03/2015 y fecha final 20/03/2015 y un empleado 2 con fecha inicio vacaciones 08/03/2015 y fecha final 28/03/2015, como puede ver los tiempos de sus vacaciones se cruzan, la consulta es saber si hay alguna formula o conjunto de formulas que me permita marcar esas filas que tengan esta caracteriztica?,

    Agradezco su Colaboración.

    Edgar Osorio

    ResponderEliminar
    Respuestas
    1. Hola Edgar.
      Para resolver tu caso he creado una nueva entrada del blog. Espero que te resulte útil. Puedes verla en el siguiente enlace.
      http://www.excelavanzado.com/2015/05/fechas-vacaciones.html

      Eliminar
    2. Muchas gracias Adolfo, era justo lo que andaba buscando, gracias por su aporte.

      Eliminar
  70. Hola Adolfo necesito por un lado introducir a mano una fecha y cuando hayan pasado 7 días que salte una celda de color verde a rojo....puede ser???

    ResponderEliminar
    Respuestas
    1. Hola.
      Lo puedes hacer sin usar macros, usando Formato condicional.
      Pon como condición que la fecha del sistema que es la función =HOY() sea mayor o igual a la fecha que analizas más 7. Si se cumple la condición pides que la celda la ponga, por ejemplo, de fondo rojo.
      Un saludo.

      Eliminar
  71. HOLA MIRA EN MI PLANILLA EXEL PARA VER LOS AÑOS DE ANTIGUEDAD DEL PERSONAL ME ACE EL CALCULO PERFECTO PERO NO SE COMO DEJAR EN CERO LAS CASILLAS DE ANTIGUEDAD QUE AUN NO LES INGRESO FECHA DE INGRESO TODAS LAS CASILLAS QQUE AUN NO LES INGRESO FECHA DE ANTIGUEDAD ME EN VES DE QUEDAR EN CERO APARECE LA CIFRA 116 . NECECITO REPARAR ESE DETALLE POR QUE LAS TENGO CON LA FUNCION QUE ME CAMBIE DE COLOR CADA VES QUE UN TRABAJADOR SOBREPASA UNA CIERTA CANTIDAD DE AÑOS DE SERVICIO

    ResponderEliminar
  72. Estimado Adolfo, quisiera saber si excel me permite hacer los siguiente: las fechas estan en una columna, correlativas (por ejemplo: A1 20/03/2016; A2 19/02/2016 y así sucesivamente hacia abajo). Quisiera en una columna paralela me vaya contando los días entre las fechas A1-A2; A2-A3 y así sucesivamente. ¿Existe una fórmula que lo calcule automaticamente y no hacerlo caso por caso? (son muchas fechas hacia abajo). De antemano muchas gracias!!
    Alfonso Gonzalez Chile

    ResponderEliminar
  73. Impresionante Adolfo. Con el blog y las respuestas a las consultas amplío muchos conocimientos.
    Gracias por compartir tu maestría.
    Un abrazo.

    ResponderEliminar
  74. buenos días como puedo corregir cuando calculo años, meses y días de servicio por antigüedad en diferentes empresas y al sumarlo me da como resultado 33 año, 16 meses y -26 días.

    ResponderEliminar
  75. hola tengo una consulta, aplico la funsion dia.lab con la fecha 07/07/2016 mas 19 dias para saber que fecha es y me arroja una fecha con el 1900 que hagooooo

    ResponderEliminar
  76. Hola buenos dias quisiera pedir ayuda....necesito una formula para sacar la diferencia que hay en cuanto al cumplimiento que se genera a raiz de una meta proyectada en horas y de la cual su ejecucion fue mayor, se supone que debe ser negativo o menor de 100% ejemplo proyectado 12 horas ejecutado 16 horas......agradeceria si me pueden colaborar.

    saludos

    ResponderEliminar
  77. Muchas gracias si entendio a perfecion.....

    ResponderEliminar
  78. Hola quiero saber si exite una formula de contar las semanas que exiten entre dos fechas y que cada jueves me arroje en que semana estoy (sin tener en cuenta las semanas del año)

    ResponderEliminar
  79. Hola
    por favor si me puedes ayudar con la siguiente situación:
    Tengo una hoja de excel con un cronogramas de actividades para x cantidad de personas, es un archivo por persona. Hay una programación que se debe respetar, por ejemplo yo asigno a una actividad 60 horas, que inician el 1-3-2017 y por día se asignan 6.4 horas para esta actividad. Al campo fecha, le sumo 60 para ver la fecha de finalización, y divido 60/6.4 para saber cuántos días se requieren ejecutando la actividad, son 9.4 días; pero la fecha de finalización puede caer un sábado o domingo, me gustaría una fórmula que cuando detecte esto, me de la fecha de finalización en el lunes siguiente.
    El otro tema es que para cada persona se registran vacaciones, reuniones y otras actividades, como puedo para hacer para que en esa misma hoja de excel cuando se registra la actividad anterior y por ejemplo hay un día de vacaciones registrado el 8-3-2017, que respete ese día y me sume la fecha de finalización de la tarea un día o x días según las fechas de vacaciones o feriados que ya están registradas en la misma plantilla de excel.
    Es decir la actividad que inicia el 1-3-2017 finalizaría el 3 de mayo (porque el 8-3-2017 es un dia de vacaciones, el 1° mayo es feriado, más los 9.4 días que se lleva la actividad) debería finalizarlo de esa manera.
    Luego te hago otras consultas cuando pueda resolver este.
    Mil gracias, saludos

    ResponderEliminar
  80. Buenas Tardes Tengo Fecha A5 16/8/2005 y en B5 Fecha actual 16/8/2017, ¿que formula usaria para que aparezca en una misma Celda d5: Año y Meses Transcurrido,usando la formula Concatenar? Gracias

    ResponderEliminar
  81. Buenas Tardes Tengo Fecha A5 16/8/2005 y en B5 Fecha actual 16/8/2017, ¿que formula usaria para que aparezca en una misma Celda d5: Año y Meses Transcurrido,usando la formula Concatenar? Gracias

    ResponderEliminar
  82. CALCULAR; FECHA iNICIAL FECHA fINAL TOPE 15 AÑOS AL LLEGAR AL TOPR NO CALCULE MAS AÑOS, GRACIAS POR TU PRONTA RESPUESTA

    ResponderEliminar
  83. Hola quiero saber si exite una formula de contarcontar cuantas semanas de embarazo tiene mi esposa y que cada semana me diga en que semana esta.

    ResponderEliminar
  84. Hola Adolfo tengo la siguiente consulta. Utilizando estas funciones: =HOY(), =DIAS.LAB Y =ALEATORIO.ENTRE. Puedo hacer una formula que me muestre una fecha aleatoria (=ALEATORIO.ENTRE) entre una fecha anterior determinada y la fecha presente (=HOY), tomando en cuenta que esta fecha muestre solamente los días laborables (=DIAS.LAB) sin sábados ni domingos. Gracias de antemano.

    ResponderEliminar
  85. Buenas noche adolfo tengo un problema necesito calcular las diferencias entre una fecha y otra calculando solo dias alaborales para calcular dias de plazo y entrega, el problema de la formula dias,lab es que me cuenta desde la fecha inicial por ejemplo el plazo de entrega es el 31/01/2019 y la fecha que se envio o entrego me deberia calcular cero pero me calcula 1 es decir cuenta y no resta que podria hacer para solucionar mi problema o que formula puedo utilizar

    ResponderEliminar
  86. Saludos.
    Necesito contar el numero de dias entre dos fechas, si una persona ingresa el 10/05/2021 y egresa el 5/06/2021, la operacion es sencilla se resta fecha final de fecha inicial, lo que necesito saber es cuantos dias del mes 05 (mayo) permanecio esta persona (o sean 21 dias), se pueden presentar dos situaciones que ingrese y egrese en el mismo mes o como en el caso expuesto arriba, egrese en el mes siguiente, no he podido encontrar la solucion (Son mas de 1500 fechas a revisar).

    ResponderEliminar