Fechas y horas

Función DIA.LAB en Excel: sumar días laborables a una fecha

Devuelve la fecha a un número dado de días laborables, saltando fines de semana y los festivos que le indiques.

DIA.LAB responde a «dentro de diez días laborables». Sumar 10 a una fecha da diez días naturales, que caen en sábado con la frecuencia suficiente como para importar; DIA.LAB pasa por encima de los fines de semana y, si le das una lista, también de los festivos.

La lista de festivos es el argumento que la hace realmente útil y el que casi todo el mundo se salta. Pon los festivos de tu organización en un rango, apunta a él con el tercer argumento, y todos los plazos, estimaciones de entrega y vencimientos del libro los tendrán en cuenta a la vez. Sin él obtienes respuestas que saben de fines de semana pero no de festivos.

Da por hecho que el fin de semana es sábado y domingo. Donde eso no es cierto —buena parte de Oriente Medio, o una operación de seis días— DIA.LAB.INTL admite un argumento extra que indica qué días son fin de semana. DIAS.LAB.NETO es la contrapartida que cuenta días laborables entre dos fechas en lugar de proyectar desde una.

Sintaxis

=DIA.LAB(fecha_inicial; días; [festivos])

Argumentos

fecha_inicial
Obligatorio
La fecha desde la que se cuenta. No se cuenta a sí misma, así que un día laborable desde un lunes es el martes.
días
Obligatorio
Cuántos días laborables moverse. Los valores negativos cuentan hacia atrás, que es como se halla la fecha en la que algo debe empezar.
festivos
Opcional
Un rango de fechas que saltar además de los fines de semana. Lo que ya cae en fin de semana no se cuenta dos veces.

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:C5. Las columnas B y C contienen fechas reales.

ABC
1ProyectoInicioVencimiento
2Traslado de almacén15/01/202430/04/2024
3Estudio del terreno01/02/202414/02/2024
4Acondicionamiento11/03/202401/09/2024
5Entrega19/08/202407/10/2024

Ejemplos resueltos

=DIA.LAB(B2; 10)

Resultado: 29/01/2024

Diez días laborables después del 15 de enero. Catorce días naturales, porque dentro caen dos fines de semana.

=DIA.LAB(B2; -5)

Resultado: 08/01/2024

Contando hacia atrás, para una tarea que debe terminar cinco días laborables antes de una fecha de inicio.

=DIA.LAB(B2; 10; $F$2:$F$10)

Resultado: 30/01/2024

El mismo tramo con lista de festivos. Un festivo dentro de la ventana desplaza la respuesta un día.

=DIAS.LAB.NETO(B2; C2)

Resultado: 77

La pregunta inversa: cuántos días laborables hay entre dos fechas que ya tienes.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Función DIA.LAB

Errores habituales y cómo resolverlos

El resultado sale como 45320

Por qué ocurre: Devuelve un número de serie de fecha y la celda tiene formato General.

Cómo resolverlo: Da formato de fecha a la celda.

#¡VALOR!

Por qué ocurre: Una de las fechas es texto, o el rango de festivos contiene algo que no es una fecha.

Cómo resolverlo: Comprueba que el rango de festivos contiene fechas reales. Una fila de encabezado colada dentro del rango es lo habitual.

#¡NUM!

Por qué ocurre: El argumento días no es un número, o el resultado cae fuera del rango de fechas de Excel.

Cómo resolverlo: Solo números enteros; los decimales se truncan en lugar de rechazarse, lo que puede ocultar un error.

El fin de semana no es el de la región

Por qué ocurre: DIA.LAB fija sábado y domingo.

Cómo resolverlo: Usa DIA.LAB.INTL, cuyo tercer argumento indica el fin de semana: 7 significa viernes y sábado, por ejemplo.

Consejos que conviene saber

  • Fija el rango de festivos con referencias absolutas antes de arrastrar, o cada fila mirará una lista desplazada.
  • DIAS.LAB.NETO cuenta días laborables entre dos fechas; DIA.LAB proyecta hacia delante desde una. Ambas aceptan festivos igual.
  • DIAS.LAB.NETO cuenta los dos extremos, así que de lunes a lunes devuelve 6, no 5.
  • Ten la lista de festivos en su propia hoja y ponle nombre al rango: así todas las fórmulas leen la misma lista y se actualizan juntas.

Preguntas frecuentes

¿Cómo excluyo los festivos?

Ponlos en un rango y pásalo como tercer argumento: =DIA.LAB(A2; 10; $F$2:$F$20). Ten ese rango en una hoja aparte para que todas las fórmulas del libro compartan una sola lista, y fíjalo con $ antes de arrastrar.

¿Qué diferencia hay entre DIA.LAB y DIAS.LAB.NETO?

DIA.LAB toma una fecha de inicio y un número de días y devuelve una fecha. DIAS.LAB.NETO toma dos fechas y devuelve cuántos días laborables hay entre ellas. Una proyecta y la otra cuenta.

¿Cómo gestiono un fin de semana que no sea sábado y domingo?

Usa DIA.LAB.INTL, que añade un argumento de fin de semana. Pásale un código —7 para viernes y sábado— o una cadena de siete caracteres de 0 y 1 donde el 1 marca día no laborable, empezando por el lunes.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.