Cómo calcular la diferencia entre dos fechas en Excel con SIFECHA
Cómo calcular la diferencia entre dos fechas en Excel con SIFECHA: años, meses y días sin dividir entre 365.
*La primera vez que necesité calcular una antigüedad intenté hacerlo de la forma más sencilla que conocía: resté las dos fechas para obtener los días y después dividí el resultado entre 365. Parecía funcionar hasta que comparé el resultado con la antigüedad real y vi que no coincidía exactamente. Al principio pensé que había cometido un error en la fórmula, pero después entendí que un año no siempre tiene exactamente 365 días y que los meses tampoco tienen todos la misma duración. Ahí descubrí que, cuando necesito expresar una diferencia de fechas en años, meses y días, no tiene mucho sentido intentar convertir todo a días y volver a dividir.*
Una tabla de treinta empleados, una columna con la fecha en que cada uno ingresó a la empresa, y una pregunta que llega cada fin de mes: ¿cuántos años, meses y días lleva cada persona en la empresa? Eso es exactamente lo que Andrea, responsable de recursos humanos en una empresa de distribución, necesitaba resolver sin calcular a mano, sin dividir días entre 365 y sin columnas auxiliares. La función que lo resuelve se llama SIFECHA, y lo primero que hay que saber sobre ella es que Excel no la muestra cuando la buscas.
SIFECHA: la función que Excel no anuncia.
=SIFECHA(fecha_inicio; fecha_fin; unidad)
Calcula la diferencia exacta entre dos fechas y la expresa en la unidad que elijas: días, meses o años. El problema es que no aparece en el autocompletado cuando empiezas a escribirla, no tiene panel de ayuda emergente y no figura en la librería de funciones del menú de fórmulas. Tienes que escribirla completa a mano, sabiendo de antemano que existe. La función fue heredada de Lotus 1-2-3 cuando Microsoft la incorporó hace décadas y quedó en una zona sin documentación moderna. La referencia técnica oficial está en Microsoft Support — función SIFECHA, aunque los ejemplos que ofrece son muy básicos.
El tercer argumento lo cambia todo.
La unidad —ese tercer argumento entre comillas— define exactamente qué estás calculando:
"Y" → años completos entre las dos fechas
"M" → total de meses completos acumulados
"D" → total de días
"YM" → meses restantes después de descontar los años completos
"MD" → días restantes después de descontar meses y años completos
La distinción entre "M" y "YM" es la que más confunde. Si alguien lleva 2 años y 5 meses, "M" devuelve 29 (los meses totales desde el inicio) y "YM" devuelve 5 (los meses del año incompleto). Para calcular antigüedad con sentido, la segunda opción es casi siempre la que necesitas.
Calcular los años de antigüedad.
Con la fecha de ingreso en la columna B (a partir de B2) y la fecha actual como referencia:
=SIFECHA(B2; HOY(); "Y")
HOY() devuelve la fecha del día en que se abre el archivo, así que el cálculo se actualiza solo sin modificar nada. Andrea no tiene que cambiar ningún valor al abrir el reporte cada mes. Si alguien ingresó el 10 de marzo de 2021 y hoy es septiembre de 2026, esta fórmula devuelve 5.
Los meses restantes: el detalle que nadie ajusta.
El error más común al construir este tipo de reporte es usar "M" creyendo que va a devolver los meses del año en curso —y obtener en cambio el total acumulado de meses desde el primer día, que puede ser 29, 66 o cualquier número que no tiene sentido para leer antigüedad. Para los meses que quedan después de los años completos, la unidad correcta es "YM":
=SIFECHA(B2; HOY(); "YM")
Con el mismo ejemplo (ingreso en marzo de 2021, hoy septiembre de 2026): la persona lleva 5 años y 6 meses. La fórmula devuelve 6.
Combinar el desglose completo en una sola celda.
Tres columnas separadas con números funcionan para análisis y filtros, pero para un reporte que va a leer un gerente o que se imprime, una sola columna con el texto completo es más clara. La fórmula que combina las tres unidades:
=SIFECHA(B2;HOY();"Y")&" años, "&SIFECHA(B2;HOY();"YM")&" meses y "&SIFECHA(B2;HOY();"MD")&" días"
El operador & une texto y valores numéricos en una misma cadena. El resultado en celda: 5 años, 6 meses y 14 días. El reporte de Andrea ahora se actualiza solo cada vez que abre el archivo, sin intervención manual y sin errores de conversión.
SIFECHA vs resta simple: cuándo alcanza con restar.
=B1-A1 devuelve el número total de días entre dos fechas. Si solo necesitas días —cuánto tiempo lleva una factura sin cobrar, cuántos días duró un proyecto— la resta directa es suficiente. Pero si necesitas años, meses o el desglose combinado, SIFECHA es la función correcta: la resta sola no puede dar "2 años y 3 meses" sin fórmulas adicionales que además fallan con años bisiestos.
*Me di cuenta del problema cuando hice el cálculo con dos fechas que estaban separadas por varios meses y el resultado expresado en años tenía una pequeña diferencia respecto a lo que indicaba el calendario. Revisé la operación y todo parecía correcto, hasta que recordé que estaba convirtiendo una cantidad de días en años usando 365 como si todos los años tuvieran exactamente esa duración. Para una aproximación podía servir, pero cuando necesitaba saber los años y meses completos de una persona, esa diferencia ya importaba. Desde entonces, si el resultado tiene que coincidir con el calendario, prefiero utilizar una función que trabaje directamente con años, meses y días.*
Un uso más: calcular edades.
La lógica es exactamente la misma. Con la fecha de nacimiento en C2:
=SIFECHA(C2; HOY(); "Y")
Devuelve los años cumplidos, no los que va a cumplir —un detalle que importa en procesos de selección, coberturas de seguro médico o trámites donde la edad exacta es relevante. Para mostrar también los meses:
=SIFECHA(C2;HOY();"Y")&" años y "&SIFECHA(C2;HOY();"YM")&" meses"
Una vez que tienes la columna de antigüedad calculada, puedes combinarla con formato condicional en Excel para resaltar automáticamente las filas de empleados que están próximos a cumplir un aniversario. El reporte deja de ser solo un registro y empieza a avisar por sí solo.
Dudas comunes sobre SIFECHA en Excel.
¿Por qué SIFECHA no aparece cuando la escribo en Excel?
Es una función no documentada en las versiones modernas de Excel. Funciona correctamente, pero Microsoft nunca la incluyó en el sistema de sugerencias ni en la librería de funciones. Hay que escribirla completa a mano, sin ayuda del autocompletado.
¿SIFECHA funciona también en Google Sheets?
Sí, con los mismos nombres y la misma sintaxis. Tanto DATEDIF (versión en inglés) como SIFECHA (interfaz en español) funcionan en Google Sheets de forma idéntica a Excel.
¿Qué diferencia hay entre usar "M" y "YM"?
"M" devuelve el total acumulado de meses desde la fecha de inicio (por ejemplo, 29 meses para alguien que lleva 2 años y 5 meses). "YM" devuelve solo los meses que quedan después de descontar los años completos (en el mismo caso, devuelve 5). Para reportes de antigüedad y cálculos de edad, "YM" es casi siempre el que necesitas.
¿SIFECHA incluye el día de inicio en el cálculo?
No. Calcula días completos transcurridos sin contar el día de inicio. Si alguien ingresó el 1 de enero y hoy es el 3 de enero, el resultado con la unidad "D" es 2, no 3.
¿Puedo reemplazar HOY() por una fecha fija de corte?
Sí. Puedes escribir la fecha de corte en una celda y referenciarla en lugar de HOY(), lo que es útil para calcular antigüedad hasta el cierre de un contrato, el fin de un período fiscal o cualquier fecha que no sea la de hoy.
─────────────────────────────
dexk es un espacio de ofimática para gente que trabaja con Excel, Word y herramientas de productividad todos los días, no solo en teoría. Si te sirvió este artículo, hay más contenido de fórmulas y funciones en el blog.
Sigue leyendo: Las fórmulas de Excel que sí vale la pena aprender



Comentarios
Publicar un comentario