Fechas y horas

Función SIFECHA en Excel: diferencia entre dos fechas en años, meses o días

Devuelve la diferencia entre dos fechas en años, meses o días completos, según la unidad que pidas.

SIFECHA responde a la pregunta que la resta no puede: cuántos meses o años completos hay entre dos fechas. Restar una fecha de otra da días, lo que está bien para un plazo y no sirve para una edad o una antigüedad. SIFECHA toma un tercer argumento que nombra la unidad y cuenta unidades completas.

Es la función más rara de Excel. Viene heredada de Lotus 1-2-3, no aparece en el autocompletado de fórmulas, falta en el asistente de funciones y la propia documentación de Microsoft desaconseja uno de sus códigos. Aun así funciona en todas las versiones y es la respuesta estándar para calcular la edad.

Como no está documentada en la interfaz, hay que escribirla entera: ningún desplegable te la ofrecerá. Eso no significa que esté obsoleta, sino que nadie ha tocado esa parte de Excel desde 1995.

Sintaxis

=SIFECHA(fecha_inicial; fecha_final; "unidad")

Argumentos

fecha_inicial
Obligatorio
La fecha más temprana. Si es posterior a la final, la función devuelve #¡NUM! en lugar de un número negativo.
fecha_final
Obligatorio
La fecha más tardía.
unidad
Obligatorio
Un código entre comillas: "Y" años completos, "M" meses completos, "D" días, "YM" meses ignorando los años, "MD" días ignorando meses y años, "YD" días ignorando los años.

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

=SIFECHA(B2; C2; "D")

Resultado: 106

Días entre el inicio y el vencimiento. El mismo resultado que =C2-B2.

=SIFECHA(B2; C2; "M")

Resultado: 3

Solo meses completos. Del 15 de enero al 30 de abril hay tres meses completos y quince días, y los quince días se descartan.

=SIFECHA(B4; C4; "YM")

Resultado: 5

Meses ignorando los años completos: la parte «y 5 meses» de una duración que expresas en años y meses.

=SIFECHA(B2; HOY(); "Y") & " años"

Resultado: 1 años

El patrón de la edad. Unirlo a texto exige cuidado con el singular y el plural; envuélvelo en SI si va a leerlo alguien más.

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 SIFECHA

Errores habituales y cómo resolverlos

#¡NUM!

Por qué ocurre: fecha_inicial es posterior a fecha_final. SIFECHA se niega a devolver un resultado negativo.

Cómo resolverlo: Pon primero la fecha más temprana, o resuélvelo con MIN y MAX: SIFECHA(MIN(B2;C2); MAX(B2;C2); "D").

#¡VALOR!

Por qué ocurre: Una de las fechas es texto que Excel no ha reconocido como fecha, o el código de unidad no lleva comillas.

Cómo resolverlo: La unidad va entre comillas: "M", no M. Para fechas en texto, conviértelas antes con FECHANUMERO.

Excel no sugiere el nombre de la función

Por qué ocurre: No está documentada en la interfaz ni aparece en el autocompletado.

Cómo resolverlo: Es lo esperado. Escribe el nombre y los argumentos completos: calculará igualmente.

"MD" devuelve un número extraño

Por qué ocurre: Microsoft desaconseja MD porque puede devolver un resultado negativo en los cambios de mes.

Cómo resolverlo: Evita "MD". Si necesitas días dentro de un mes, calcúlalo con una resta y FIN.MES.

Consejos que conviene saber

  • Edad en años: =SIFECHA(nacimiento; HOY(); "Y"). Es el motivo por el que casi todo el mundo conoce esta función.
  • Un «X años, Y meses» completo se escribe =SIFECHA(a;b;"Y")&" años, "&SIFECHA(a;b;"YM")&" meses".
  • Para días laborables en lugar de naturales, la función que quieres es DIAS.LAB.NETO, no SIFECHA.
  • Envuélvela en SI.ERROR cuando alguna fecha pueda estar vacía, porque una fecha inicial en blanco se lee como 1900 y da un resultado absurdo en vez de un error.

Preguntas frecuentes

¿Por qué Excel no autocompleta SIFECHA?

Se heredó de Lotus 1-2-3 por compatibilidad y nunca se añadió a la interfaz de la biblioteca de funciones. No está obsoleta y funciona en todas las versiones, pero hay que escribirla entera porque ningún desplegable la ofrece.

¿Cómo calculo la edad de alguien en Excel?

=SIFECHA(fecha_nacimiento; HOY(); "Y") da los años cumplidos, que es lo que normalmente significa «edad». Ten en cuenta que HOY() se recalcula, así que la celda se actualiza sola: correcto para una edad y equivocado para dejar constancia de una edad en una fecha concreta.

¿Qué diferencia hay entre SIFECHA con "D" y una resta?

Ninguna: =SIFECHA(a; b; "D") y =b-a dan el mismo número de días. SIFECHA se gana su sitio con "Y" y "M", donde la resta no puede ayudarte.

Funciones relacionadas

Guías que la usan

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