El problema es muy sencillo de resolver utilizando la función DIA.LAB, cuya sintaxis es:
DIA.LAB(fecha_inicial;días_laborables;[festivos])
En nuestro ejemplo, la fecha_inicial sería el 26/12/2011; días_laborables, serían 84; festivos (opcional), sería la lista de días no laborables (excluidos los fines de semana) que hay entre diciembre de 2011 y mayo de 2012 (en ese intervalo hay más de 84 días). Poniéndolo todo en una hoja de cálculo quedaría así:
La fórmula de C4 es: =DIA.LAB(C2;C3;C6:C13)
Si no ponemos los datos en la hoja, utilizaremos la fórmula: =DIA.LAB("26/12/2011";84;{"6/12/2011";"8/12/2011";"6/1/2012";"5/4/2012";"6/4/2012";"9/4/2012";"30/4/2012";"1/5/2012"})
La función DIA.LAB considera no laborables los fines de semana y los festivos que explícitamente señalemos.
Ahora, consideremos otro caso. El operario al que hemos hecho referencia trabaja los sábados pero no trabaja los domingos ni los lunes.
En este caso, no podemos utilizar la función DIA.LAB como lo hemos hecho en el ejemplo anterior. Afortunadamente, Microsoft ha introducido una nueva función en Excel 2010 para resolver este caso. La función se llama DIA.LAB.INTL y su sintaxis es:
DIA.LAB.INTL(fecha_inicial;días_laborables;[fin_de_semana];[festivos])
Como se observa, el tercer argumento permite elegir qué días se consideran fin de semana, según la tabla:
El argumento para nuestro caso es 2. Por tanto, la fórmula de C4 será: =DIA.LAB.INTL(C2;C3;2;C6:C13)
En vez de usar los números de la lista anterior, podemos poner una cifra de 7 ceros y unos. El cero indica que el día es laborable, mientras que el uno indica que es festivo. Se cuenta de lunes a domingo. De este modo, "1000001", indica que el lunes y el domingo son no laborables. Con este convenio, la fórmula de C4 queda así: =DIA.LAB.INTL(C2;C3;"1000001";C6:C13)
Lógicamente, el resultado no cambia.
Si sólo se trabaja los martes, jueves y sábados, la fórmula será: =DIA.LAB.INTL(C2;C3;"1010101";C6:C13)
"1111111" no es una cadena válida, ya que su uso implicaría que no se trabajase ningún día.
Planteemos otra situación. Un trabajo se ha empezado el día 20 de septiembre de 2011 y se ha terminado el 27 de diciembre de 2011. ¿Cuántos días se han trabajado? Naturalmente, no contaremos los fines de semana (que no se trabaja) ni los días festivos.
Como en los ejemplos anteriores hay una función para realizar este cálculo: DIAS.LAB
DIAS.LAB(fecha_inicial; fecha_final; [festivos])
La fecha_inicial es el día que se empezó el trabajo (20/09/2011); la fecha_final, el día que se terminó (27/12/2011); festivos son los días no laborables excluidos los sábados y domingos (que no se trabaja).
La fórmula de C4 debe ser: =DIAS.LAB(C2;C3;C6:C17)
En Excel 2010, también existe la función DIAS.LAB.INTL para el caso en que los fines de semana no sean el sábado y el domingo.
DIAS.LAB.INTL(fecha_inicial; fecha_final; [fin_de_semana]; [festivos])
Por ejemplo, si los días que no se trabaja son el jueves y el viernes, la fórmula será: =DIAS.LAB.INTL(C2;C3;"0001100";C6:C17)
Como jueves y viernes son dos días consecutivos, podemos utilizar el número 6 como tercer argumento de la función DIAS.LAB.INTL. En ese caso, la fórmula será: =DIAS.LAB.INTL(C2;C3;6;C6:C17)
Hola, necesito que me colaboren, este archivo me sirvió mucho, pero realizo programaciones de producción continuas, en tiempo real (necesito saber con precisión la fecha y hora exacta en que voy a realizar un cambio en el proceso u inicio de cada uno de los pedidos) la empresa cambio su calendario, ahora trabaja todos los días de la semana excepto el domingo durante las 24 horas del día; realizando el ejercicio con la función DIAS.LAB.INTL, los resultados salen enteros esto me dificulta tener una informacion verídica del proceso.
ResponderEliminarExcelente tutorial, muchas gracias!!
ResponderEliminarmuy buenas explicaciones prácticas de excell
ResponderEliminarBuenos dias, usando fin de semana 2 (domino y lunes) cuando las celdas fecha de inicio y fecha final estan sin rellenar el valos de la formula es 1 en vez de 0.
ResponderEliminarGracias