Calcular días laborables entre dos fechas con vacaciones y festivos en Microsoft Excel I de II

Windows Técnico

Sindicación

Proximos HOLs

Loading...

Una de las cosas más complejas a la hora de trabajar cotidianamente con Microsoft Excel, es el manejo que este tiene respecto a las fechas. En el fondo para Excel las fechas son números que se escriben con un formato distinto, lo que hace que sea sencillo realizar cálculos entre dichas fechas si se saben utilizar las herramientas adecuadas.

En una ocasión se explicó el funcionamiento de la función oculta SIFECHA que es utilísima para restar fechas. Esta vez se van a mostrar funciones similares, pero para calcular días laborables entre fechas, estableciendo el propio usuario qué días son laborables, por lo que se podrán incluir festivos y vacaciones.

En el ejemplo siguiente se muestran por ejemplo los días del mes de diciembre del año 2013, y se van a realizar distintos cálculos según se consideren laborables ciertos días, festivos otros, y vacacionales otros.

La primera función que se va a utilizar es DIAS.LAB(fecha_inicial, fecha_final, [vacaciones]), a la que hay que pasarle la fecha inicial y la fecha final. Esta función no considera laborables ni los sábados ni los domingos, por lo que para que muestre los días laborables sin festivos ni vacaciones habría que poner esta función:

=DIAS.LAB(B2;B32)

79-dias laborables 01

Imagen 01: Días laborables sin festivos ni vacaciones.

Esta función devuelve 22 días. En caso de que el mes tenga días festivos, lo ideal es ponerlo en celdas aparte, para poder utilizarlos en la fórmula. En este caso los festivos son los días 6, 8 y 25 de diciembre, que se ha puesto en el rango de celdas D2:D4. Para averiguar el nuevo número de días habría que ampliar la función anterior:

=DIAS.LAB(B2;B32;D2:D4)

79-dias laborables 02

Imagen 02: Días laborables con festivos pero sin vacaciones.

Esta función devuelve 20 días, debido a que un festivo cae en domingo, por lo que ya está contabilizado. En caso de que además se disponga de vacaciones habría que ampliar el último parámetro. En este caso se supondrá que la semana del 16 al 20 se dispondrá de vacaciones, por lo que tampoco serán laborables. Así que la función quedaría ahora así:

=DIAS.LAB(B2;B32;D2:D4;D9:D13)

Pero esta función devuelve un error, ya que se han especificado demasiados argumentos. Si se ponen todos los datos en un único rango también devuelve un error, ya que hay texto dentro de los parámetros pasados a la función:

=DIAS.LAB(B2;B32;D2:D13)

79-dias laborables 03

Imagen 03: Días laborables con festivos y con vacaciones.

Para que la función devuelva el dato correcto hay que organizar los festivos y las vacaciones y colocarlos juntos para enviar un único rango, sin texto entre medias. Por ejemplo así:

79-dias laborables 04

Imagen 04: Festivos y laborables colocados correctamente para poder establecer los días no laborables.

Siendo ahora la función:

=DIAS.LAB(B2;B32;D2:F6)

Que devuelve 15 días laborables en total, correspondientes a los que no son ni festivos ni vacacionales.

79-dias laborables 05

Imagen 05: Días laborables de diciembre excluyendo festivos y vacaciones.

Hay que tener en cuenta que esta función trabaja con fechas, por lo que si se desean establecer las fechas en la propia función en lugar de en celdas aparte, previamente hay que hacer una conversión a fechas. Esto se puede hacer con la función FECHA, el primer ejemplo podría hacerse así:

=DIAS.LAB(FECHA(2013;12;1);FECHA(2013;12;31))

Otra posibilidad sería establecer cuantos días laborables quedan hasta el fin de año, se podría hacer con esta simple función:

=DIAS.LAB(HOY();FECHA(2013;12;31))

En un próximo post se mostrará este mismo ejemplo pero será el usuario el que establezca cuáles son los fines de semana, ya que en según qué trabajos se trabajan unos días u otros. Incluso se podrán establecer fines de semana de varios días.

Desde Windows Técnico se sugiere la suscripción al canal RSS de Windows Técnico para estar al día de las novedades concernientes a noticias de seguridad y/o productos Microsoft.

 

clip_image018[4]


Enviado jul 24 2013, 03:16 por adiaz

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: