5 formas de calcular los días hábiles en Excel y Python (con plantillas gratuitas)
5 formas de calcular los días hábiles en Excel y Python (con plantillas gratuitas)
Calcular con precisión los días laborables entre fechas arbitrarias del calendario es un requisito esencial en finanzas corporativas, motores de nómina, modelado de cadenas de suministro y gestión de proyectos. Ya sea que esté configurando una hoja de Google simple o diseñando una canalización ETL de Python de alto rendimiento, aquí tiene la guía completa para la aritmética programática del día hábil.
1. Microsoft Excel y Google Sheets: NETWORKDAYS frente a NETWORKDAYS.INTL
La función estándar NETWORKDAYS calcula los días laborables netos entre dos fechas, excluyendo automáticamente los sábados y domingos.
=DÍAS DE LA RED(A2, B2, Lista de Días Festivos)
Fines de semana personalizados con NETWORKDAYS.INTL
Para operaciones en Medio Oriente (por ejemplo, Emiratos Árabes Unidos antes de 2022, Arabia Saudita) o turnos personalizados de 4 días, use NETWORKDAYS.INTL:
=NETWORKDAYS.INTL(fecha de inicio, fecha de finalización, 7, rango de vacaciones)
Donde 7 especifica viernes y sábado como fin de semana.
2. Cálculo vectorizado numpy de Python (busday_count)
Para marcos de datos masivos (millones de filas), numpy.busday_count es órdenes de magnitud más rápido que los bucles iterativos:
importar numpy como np
# Cálculo de días laborables vectorizados
start_dates = np.array(['2026-01-01', '2026-03-01'], dtype='datetime64[D]')
end_dates = np.array(['2026-01-31', '2026-03-31'], dtype='datetime64[D]')
vacaciones = ['2026-01-01', '2026-01-19']
días_trabajables = np.busday_count(fechas_inicio, fechas_finalización, feriados = feriados)
print(f"Días laborables calculados: {días_laborables}")
3. Python pandas.bdate_range y compensaciones de días laborables personalizadas
Al crear índices de series temporales con días festivos personalizados:
importar pandas como pd
de pandas.tseries.holiday importar USFederalHolidayCalendar
de pandas.tseries.offsets importar CustomBusinessDay
us_bday = CustomBusinessDay(calendario=USFederalHolidayCalendar())
días = len(pd.bdate_range('2026-01-01', '2026-12-31', freq=us_bday))
print(f"Total de días laborables federales de EE. UU. en 2026: {días}")
Resumen de mejores prácticas
- Declare siempre vectores de vacaciones explícitos: Las suposiciones de vacaciones implícitas conducen a errores de cálculo del SLA.
- Normalizar límites inclusivos: Decida si se cuentan tanto el día 0 como el día objetivo.
- Utilice nuestro motor interactivo: Utilice WorkingDaysCalculator.net para realizar una verificación cruzada de sus fórmulas con reglas instantáneas de cumplimiento legal en varios países.
Guías y Artículos Relacionados
Turnos de días festivos internacionales para equipos globales: manejo del cumplimiento "en lugar"
En qué se diferencian los días sustitutos, la renovación de días festivos y las normas legales sustitutivas en EE. UU., Reino Unido, Alemania, Japón y Australia.
Comprensión de las reglas de liquidación financiera T+1/T+2 y plazos de envío
Cómo operan los ciclos de liquidación SEC T+1/T+2, las ventanas de tránsito de los transportistas y las cuentas regresivas de los días hábiles de los SLA bajo las restricciones del calendario del mundo real.
How to Calculate Working Days Between Two Dates
Conozca los fundamentos del cálculo de los días hábiles, los errores comunes que se deben evitar y por qué la automatización es importante para la precisión.