La diferencia entre dos fechas se basa en un mecanismo que las hojas de cálculo ocultan detrás de sus interfaces: cada fecha se almacena como un número entero secuencial. Excel utiliza el sistema 1900 (el 1 de enero de 1900 vale 1), Google Sheets el sistema 1899. Por lo tanto, una resta simple entre dos celdas de fechas devuelve una diferencia en días, sin función particular. Toda la complejidad aparece cuando se quiere expresar esta diferencia en meses, años o días laborables.
Serialización de fechas y trampas del sistema 1900 en Excel
Excel hereda un error histórico de Lotus 1-2-3: el 29 de febrero de 1900 se considera una fecha válida aunque 1900 no es un año bisiesto. Este día fantasma desplaza en una unidad todos los números de serie anteriores al 1 de marzo de 1900.
Lectura complementaria : Cómo elegir los colores adecuados para su carpintería: el gran debate entre el blanco y el antracita
En la práctica, este desplazamiento solo afecta a los cálculos que involucran fechas anteriores a marzo de 1900, un caso raro. Recomendamos tenerlo en cuenta al manipular archivos históricos o al importar archivos entre Excel y un sistema que no aplica este mismo sesgo (bases de datos SQL, Python datetime).
Google Sheets elude el problema adoptando el sistema 1899, donde el 30 de diciembre de 1899 vale 0. Durante una transferencia de archivo entre las dos hojas de cálculo, puede aparecer una diferencia de un día en las fechas antiguas. La verificación manual de una fecha de referencia conocida, antes de cualquier cálculo masivo, evita errores silenciosos. Para profundizar en estos mecanismos, puedes descubrir las soluciones en Anekdotes en un contexto detallado.
Lectura recomendada : Msc cruceros: navegar entre lujo y aventura

DATEDIF, FRACTION.ANNEE y resta directa: qué fórmula para qué necesidad
La resta directa (celda fin – celda inicio) sigue siendo el método más fiable para obtener un número de días. El resultado es un entero, sin ambigüedad. Para semanas, se divide por 7 y se trunca.
La función DATEDIF acepta tres argumentos: fecha de inicio, fecha de fin y una unidad (“d” para días, “m” para meses, “y” para años). También permite combinaciones como “ym” (meses restantes después del conteo de años) o “md” (días restantes después del conteo de meses). Microsoft señala explícitamente que DATEDIF puede producir resultados incorrectos en ciertos escenarios, especialmente con el argumento “md” en rangos que cubren un cambio de mes corto (febrero).
FRACTION.ANNEE combinada con TRONQUE
Para obtener un número de años decimales entre dos fechas, FRACTION.ANNEE (YEARFRAC en inglés) ofrece una alternativa más transparente. Acepta un parámetro de base de cálculo que modifica la convención de conteo de días:
- Base 0 (US 30/360): cada mes se cuenta como 30 días, el año como 360. Utilizada en finanzas para bonos.
- Base 1 (Actual/Actual): días reales sobre año real. La opción más intuitiva para cálculos calendáricos.
- Base 3 (Actual/365): días reales sobre 365, ignora los años bisiestos. Frecuente en contabilidad bancaria.
Al anidar FRACTION.ANNEE en TRONQUE, se aísla la parte entera para obtener un número de años completos. TRONQUE(FRACTION.ANNEE(inicio;fin;1)) devuelve los años completos transcurridos, sin redondeo.
Cálculo de días laborables con NETWORKDAYS y NETWORKDAYS.INTL
Contar los días calendáricos no es suficiente en un contexto profesional. La función NB.JOURS.OUVRES (NETWORKDAYS) excluye automáticamente los sábados, domingos y días festivos listados en un rango de referencia.
Su variante NETWORKDAYS.INTL permite redefinir el fin de semana. El segundo argumento acepta un código numérico o una cadena binaria de 7 caracteres (uno por día de la semana). Un “1” señala un día de descanso. Ejemplo: “0000011” designa sábado y domingo como fin de semana, “0000010” solo elimina el sábado.
Esta flexibilidad cubre los contextos donde el fin de semana difiere del estándar occidental. Observamos regularmente errores en este parámetro cuando se configura manualmente: invertir un solo bit en la cadena false todo el conteo.
Gestionar el rango de días festivos
NETWORKDAYS espera un rango opcional de fechas festivas. Dos buenas prácticas:
- Almacenar los días festivos en una pestaña dedicada, nombrada explícitamente (“Feriados_2025”), para simplificar el mantenimiento anual.
- Utilizar un rango nombrado dinámico (OFFSET + COUNTA o una tabla estructurada) para que la adición de un día festivo se tenga en cuenta sin modificar la fórmula.
- Verificar que las fechas festivas estén en el formato de fecha y no como texto, bajo pena de un conteo silenciosamente incorrecto.

Automatizar el cálculo de diferencia de fechas en herramientas no-code
Las plataformas no-code ahora integran módulos nativos de cálculo de duraciones entre dos fechas. Make (ex-Integromat) ofrece un módulo “Fecha y Hora” con una operación de diferencia parametrizable en días, horas o minutos, sin escribir fórmula.
El interés en comparación con una hoja de cálculo es doble. Primero, el cálculo se ejecuta en un flujo automatizado (webhook, CRM, herramienta de gestión de proyectos) sin intervención manual. Luego, la zona horaria se gestiona a nivel de escenario, lo que una hoja de cálculo clásica no hace de forma nativa en fechas sin componente horario.
La convergencia entre Excel para la web y Excel de escritorio también ha progresado: funciones como NETWORKDAYS.INTL ahora son compatibles en Excel para la web, lo que hace que los cálculos de duraciones de proyectos sean utilizables directamente en un navegador, sin versión de escritorio.
La elección del método depende del volumen y del contexto. Para un cálculo puntual, la resta directa en una hoja de cálculo sigue siendo el camino más corto. Tan pronto como el cálculo alimenta un proceso recurrente (facturación, seguimiento de proyectos, renovación contractual), la automatización a través de una herramienta no-code o una fórmula NETWORKDAYS bien parametrizada evita los errores de copiar y pegar que se acumulan discretamente, mes tras mes.
