Tabla de contenido
Este breve tutorial explica el uso de las funciones NETWORKDAYS y WORKDAY de Excel para calcular días laborables con parámetros personalizados de fin de semana y días festivos.
Microsoft Excel proporciona dos funciones especialmente diseñadas para calcular los días laborables: WORKDAY y NETWORKDAYS.
En JORNADA DE TRABAJO devuelve una fecha N días laborables en el futuro o en el pasado y puede utilizarla para sumar o restar días laborables a una fecha dada.
Utilización de la NETWORKDAYS puede calcular el número de días laborables entre dos fechas especificadas.
En Excel 2010 y versiones superiores, existen modificaciones más potentes de las funciones mencionadas, WORKDAY.INTL y NETWORKDAYS.INTL, que permiten definir qué días y cuántos son días de fin de semana.
Y ahora, echemos un vistazo más de cerca a cada función y veamos cómo puede utilizarla para calcular días laborables en sus hojas de cálculo de Excel.
Función WORKDAY de Excel
La función DÍA LABORABLE de Excel devuelve una fecha que se encuentra un número determinado de días laborables por delante o por delante de la fecha de inicio. Excluye los fines de semana, así como los días festivos que especifique.
La función WORKDAY sirve para calcular los días laborables, los hitos y las fechas de vencimiento basándose en el calendario laboral estándar, siendo el sábado y el domingo los días de fin de semana.
WORKDAY es una función incorporada en Excel 2007 - 365. En versiones anteriores, es necesario activar el Analysis ToolPak.
Cuando utilice WORKDAY en Excel, deberá introducir los siguientes argumentos:
WORKDAY(fecha_inicio, días, [vacaciones])Los dos primeros argumentos son obligatorios y el último es opcional:
- Fecha_inicio - la fecha a partir de la cual empezar a contar los días de la semana.
- Días - el número de días laborables a sumar / restar de fecha_inicio. Un número positivo devuelve una fecha futura, un número negativo devuelve una fecha pasada.
- Vacaciones - una lista opcional de fechas que no deben contarse como días laborables. Puede ser un rango de celdas que contenga las fechas que desea excluir de los cálculos, o una constante de matriz de los números de serie que representan las fechas.
Ahora que conoce los conceptos básicos, veamos cómo puede utilizar la función WORKDAY en sus hojas de cálculo de Excel.
Cómo utilizar WORKDAY para sumar/restar días laborables a la fecha
Para calcular los días laborables en Excel, siga estas sencillas reglas:
- A añada días laborables, introduzca un número positivo como días argumento de una fórmula WORKDAY.
- A restar días laborables, utilice un número negativo en el días argumento.
Supongamos que tienes una fecha de inicio en la celda A2, una lista de días festivos en las celdas B2:B5, y quieres averiguar las fechas de 30 días laborables en el futuro y en el pasado. Puedes hacerlo utilizando las siguientes fórmulas:
Para añadir 30 días laborables a la fecha de inicio, excluyendo los días festivos en B2:B5:
=DÍA DE TRABAJO(A2, 30, B2:B5)
Restar 30 días laborables a la fecha de inicio, excluyendo los días festivos en B2:B5:
=DÍA DE TRABAJO(A2, -30, B2:B5)
Para calcular los días de la semana en función del fecha actual utilice la función TODAY() como fecha de inicio:
Para añadir 30 días laborables a la fecha de hoy:
=DÍA DE TRABAJO(HOY(), 30)
Para restar 30 días laborables a la fecha de hoy:
=DÍA DE TRABAJO(HOY(), -30)
Para introducir la fecha de inicio directamente en la fórmula, utilice la función FECHA:
=DÍA DE TRABAJO(FECHA(2015,5,6), 30)
La siguiente captura de pantalla muestra los resultados de todas estas fórmulas y algunas más de WORKDAY:
Y naturalmente, puede introducir el número de días laborables a sumar / restar de la fecha de inicio en alguna celda, y luego hacer referencia a esa celda en su fórmula. Por ejemplo:
=DÍA DE TRABAJO(A2, C2)
Donde A2 es la fecha de inicio y C2 es el número de días no laborables por detrás (números negativos) o por delante (números positivos) de la fecha de inicio, sin días festivos que excluir.
Consejo: En Excel 365 y 2021, puede utilizar WORKDAY en combinación con SEQUENCE para generar una serie de días laborables.
Función Excel WORKDAY.INTL
WORKDAY.INTL es una modificación más potente de la función WORKDAY que funciona con parámetros personalizados de fin de semana Al igual que WORKDAY, devuelve una fecha que es un número especificado de días laborables en el futuro o en el pasado, pero le permite determinar qué días de la semana deben considerarse días de fin de semana.
La función WORKDAY.INTL se introdujo en Excel 2010, por lo que no está disponible en versiones anteriores de Excel.
La sintaxis de la función de Excel WORKDAY.INTL es la siguiente:
WORKDAY.INTL(fecha_inicio, días, [fin de semana], [vacaciones])Los dos primeros argumentos son obligatorios y son similares a los de WORKDAY:
Fecha_inicio - la fecha inicial.
Días - el número de días laborables anteriores (valor negativo) o posteriores (valor positivo) a la fecha de inicio. Si el días
se suministra como un número decimal, se trunca al número entero.
Los dos últimos argumentos son opcionales:
Fin de semana - especifica qué días de la semana deben contarse como días de fin de semana. Puede ser un número o una cadena, como se muestra a continuación.
Número | Días de fin de semana |
1 u omitido | Sábado, domingo |
2 | Domingo, lunes |
3 | Lunes, martes |
4 | Martes, miércoles |
5 | Miércoles, Jueves |
6 | Jueves, Viernes |
7 | Viernes, sábado |
11 | Sólo domingos |
12 | Sólo lunes |
13 | Sólo martes |
14 | Sólo miércoles |
15 | Sólo jueves |
16 | Sólo viernes |
17 | Sólo sábados |
Cadena de fin de semana - una serie de siete 0 y 1 que representan siete días de la semana, empezando por el lunes. 1 representa un día no laborable y 0 representa un día laborable. Por ejemplo:
- "0000011" - El sábado y el domingo son fin de semana.
- "1000001" - El lunes y el domingo son fin de semana.
A primera vista, las cadenas de fin de semana pueden parecer superfluas, pero personalmente me gusta más este método porque puedes hacer una cadena de fin de semana sobre la marcha sin tener que recordar ningún número.
Vacaciones - una lista opcional de fechas que desea excluir del calendario de días laborables. Puede ser un rango de celdas que contengan las fechas, o una constante de matriz de los valores de serie que representan esas fechas.
Uso de WORKDAY.INTL en Excel - ejemplos de fórmulas
El grueso de la teoría de la que acabamos de hablar puede parecer bastante complicado y confuso, pero probar las fórmulas te facilitará mucho las cosas.
En nuestro conjunto de datos, con la fecha de inicio en la celda A2 y una lista de días festivos en A5:A8, calculemos los días laborables con fines de semana personalizados.
A añada 30 días laborables hasta la fecha de inicio, viernes y sábado contados como fines de semana y días festivos en A5:A8 excluidos:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
o
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
A restar 30 días laborables a partir de la fecha de inicio, domingo y lunes contados como fines de semana y días festivos en A5:A8 excluidos:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
o
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Para añadir 10 días laborables al fecha actual , siendo el domingo el único día del fin de semana, sin festivos:
=WORKDAY.INTL(HOY(), 10, 11)
o
=WORKDAY.INTL(A2, 10, "0000001")
En su hoja de Excel, las fórmulas pueden tener un aspecto similar al siguiente:
Nota: Las funciones WORKDAY y WORKDAY.INTL de Excel devuelven números de serie que representan las fechas. Para que esos números se muestren como fechas, seleccione las celdas con los números y pulse Ctrl+1 para abrir la función Formatear celdas En el Número seleccione Fecha en el Categoría Para conocer los pasos detallados, consulte Cómo cambiar el formato de fecha en Excel.
Errores de Excel WORKDAY y WORKDAY.INTL
Si su fórmula de Excel WORKDAY o WORKDAY.INTL devuelve un error, es probable que el motivo sea uno de los siguientes:
¡#NUM! se produce un error si
- una combinación del
fecha_inicio
ydías
da como resultado una fecha no válida, o fin de semana
en la función WORKDAY.INTL no es válido.
#¡VALOR! se produce un error si
fecha_inicio
o cualquier valor envacaciones
no es una fecha válida, odías
no es numérico.
Función NETWORKDAYS de Excel
La función NETWORKDAYS de Excel devuelve el número de días laborables entre dos fechas, excluyendo los fines de semana y, opcionalmente, los días festivos que especifique.
La sintaxis de los NETWORKDAYS de Excel es intuitiva y fácil de recordar:
NETWORKDAYS(fecha_inicio, fecha_fin, [días festivos])Los dos primeros argumentos son obligatorios y el tercero es opcional:
- Fecha_inicio - fecha inicial a partir de la cual empezar a contar los días laborables.
- Fecha_final - el final del período para el que cuenta los días laborables.
Tanto la fecha de inicio como la de finalización se contabilizan en el número de días laborables devuelto.
- Vacaciones - una lista opcional de días festivos que no deben contarse como días laborables.
Cómo utilizar NETWORKDAYS en Excel - ejemplo de fórmula
Digamos que tienes una lista de días festivos en las celdas A2:A5, fechas de inicio en la columna B, fechas de fin en la columna C, y quieres saber cuántos días laborables hay entre estas fechas. La fórmula NETWORKDAYS apropiada es fácil de averiguar:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Observe que la función NETWORKDAYS de Excel devuelve un valor positivo cuando la fecha de inicio es menor que la fecha final, y un valor negativo si la fecha final es más reciente que la fecha de inicio (como en la fila 5):
Función NETWORKDAYS.INTL de Excel
Al igual que NETWORKDAYS, la función NETWORKDAYS.INTL de Excel calcula el número de días laborables entre dos fechas, pero permite especificar qué días deben contarse como días de fin de semana.
La sintaxis de la función NETWORKDAYS.INTL es muy similar a la de NETWORKDAYS, salvo que tiene el parámetro adicional [fin de semana] que indica qué días de la semana deben contarse como fines de semana.
NETWORKDAYS.INTL( fecha_inicio, fecha_fin, [fin de semana], [festivos] ) En fin de semana
puede aceptar un número o una cadena. Los números y las cadenas de fin de semana son exactamente los mismos que en el argumento fin de semana
de la función WORKDAY.INTL.
La función NETWORKDAYS.INTL está disponible en Excel 365 - 2010.
Uso de NETWORKDAYS.INTL en Excel - ejemplo de fórmula
Utilizando la lista de fechas del ejemplo anterior, calculemos el número de días laborables entre dos fechas con el domingo como único día del fin de semana. Para ello, escriba el número 11 en el campo fin de semana
de su fórmula NETWORKDAYS.INTL o haga una cadena de seis 0's y un 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
O
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
La siguiente captura de pantalla demuestra que ambas fórmulas arrojan resultados absolutamente idénticos.
Cómo resaltar días laborables en Excel
Con las funciones WORKDAY y WORKDAY.INTL, no sólo puede calcular los días laborables en las hojas de cálculo de Excel, sino también resaltarlos según requiera su lógica empresarial. Para ello, cree una regla de formato condicional con una fórmula WORKDAY o WORKDAY.INTL.
Por ejemplo, en una lista de fechas de la columna B, destaquemos sólo las fechas futuras que estén dentro de los 15 días laborables siguientes a la fecha de hoy, excluyendo dos días festivos en las celdas A2:A3. La fórmula más obvia que se me ocurre es la siguiente:
=AND($B2>HOY(), $B2<=HOY(HOY(), 15, $A$2:$A$3))
La primera parte de la prueba lógica corta las fechas pasadas, es decir, se comprueba si una fecha es igual o mayor que hoy: $B2>TODAY(). Y en la segunda parte, se verifica si una fecha no está a más de 15 días laborables en el futuro, excluyendo los días del fin de semana y los días festivos especificados: $B2<=HOY(HOY(), 15, $A$2:$A$3)
La fórmula parece correcta, pero una vez que cree una regla basada en ella, se dará cuenta de que resalta fechas erróneas:
Intentemos averiguar por qué ocurre esto. El problema no está en la función WORKDAY, como alguien podría concluir. La función es correcta, pero... ¿qué hace en realidad? Devuelve una fecha de 15 días laborables a partir de ahora, excluyendo los días de fin de semana (sábado y domingo) y los días festivos en las celdas A2:A3.
Bien, ¿y qué hace la regla basada en esta fórmula? Resalta TODAS las fechas que son iguales o mayores que hoy y menores que la fecha devuelta por la función WORKDAY. ¿Lo ves? ¡Todas las fechas! Si no quieres colorear los fines de semana y festivos, entonces necesitas decirle explícitamente a Excel que no lo haga. Así que, estamos añadiendo dos condiciones más a nuestra fórmula:
- La función WEEKDAY para excluir los fines de semana: WEEKDAY($B2, 2)<6
- La función COUNTIF para excluir los días festivos: COUNTIF($A$2:$A$3, $B2)=0
Como se muestra en la siguiente captura de pantalla, la fórmula mejorada funciona perfectamente:
=AND($B2>HOY(), $B2<=HOY(HOY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Como ves, las funciones WORKDAY y WORKDAY.INTL hacen que el cálculo de días laborables en Excel sea rápido y sencillo. Por supuesto, es probable que tus fórmulas de la vida real sean más sofisticadas, pero conocer lo básico ayuda enormemente, porque puedes recordar sólo un pequeño conjunto de cosas esenciales y derivar el resto. Te doy las gracias por leer y ¡espero verte en nuestro blog la semana que viene!