Funciones de fecha de Excel: HOY, AHORA, FECHA, SIFECHA, DIAS, FIN.MES y más

Por el equipo editorial de LogicExcelActualizado en junio de 20267 min de lectura1,250 palabrasPractica esto

¿Listo para practicar?

Pon en práctica lo que acabas de aprender con ejercicios interactivos.

Iniciar lección 43

Excel guarda las fechas como números de serie: el 1 de enero de 1900 es el 1, el 2 de enero de 1900 es el 2, y así sucesivamente. Eso significa que puedes hacer cálculos directamente con fechas: resta dos y obtendrás los días que hay entre ellas. Las funciones de fecha que vemos aquí se apoyan en esa base para calcular edades, proyectar plazos, hallar fines de mes, contar días laborables y más.

¿Buscas la parte del reloj (AHORA, NSHORA, HORA, MINUTO)? Está en una página aparte de funciones de hora, con una lección en vivo de NSHORA. La práctica de fechas empieza en HOY.

HOY y AHORA

Estas dos funciones devuelven la fecha y la hora actuales sin necesidad de argumentos.

HOY()

=HOY() devuelve la fecha de hoy como número de serie con formato de fecha. Se recalcula cada vez que se abre el libro o se recalcula la hoja. Ejemplos:
  • =HOY() devuelve la fecha de hoy (por ejemplo, 16/4/2026)
  • =HOY() - A1 devuelve los días que hay entre hoy y la fecha de A1
  • =HOY() + 30 devuelve la fecha de dentro de 30 días
Caso de uso: crear fórmulas que se mantienen al día solas. =SI(A1 < HOY(); "Vencido"; "En plazo") marca automáticamente lo que se ha pasado de fecha.

AHORA()

=AHORA() devuelve la fecha y la hora actuales. La parte horaria se actualiza cada vez que se recalcula la hoja. Ejemplo:
  • =AHORA() devuelve algo como 16/4/2026 14:35
  • =AHORA() - A1 devuelve los días (y fracciones de día) transcurridos desde A1
Da a la celda el formato "h:mm" para ver solo la hora, o "aaaa-mm-dd hh:mm" para una marca de tiempo completa.

FECHA: construir una fecha a partir de sus partes

FECHA crea un número de serie de fecha a partir del año, el mes y el día. Sintaxis: =FECHA(año; mes; día) Ejemplos:
  • =FECHA(2026; 6; 15) devuelve el 15 de junio de 2026
  • =FECHA(AÑO(A1); MES(A1) + 1; 1) devuelve el primer día del mes siguiente
  • =FECHA(2026; 13; 1) devuelve el 1 de febrero de 2027: Excel gestiona el desbordamiento de meses
Caso de uso: reconstruir fechas cuando el año, el mes y el día están en columnas separadas. =FECHA(C1; B1; A1) une el día de A1, el mes de B1 y el año de C1 en una fecha real.

FECHA también maneja bien los valores fuera de rango. =FECHA(2026; 1; 0) devuelve el 31 de diciembre de 2025 (el día 0 es el último día del mes anterior), algo útil para los cálculos de fin de mes.

AÑO, MES y DIA: extraer las partes de una fecha

Estas tres funciones descomponen una fecha en sus componentes.

Sintaxis:
  • =AÑO(fecha): devuelve el año de cuatro cifras
  • =MES(fecha): devuelve el número del mes (1-12)
  • =DIA(fecha): devuelve el día del mes (1-31)
Ejemplos:
  • =AÑO(HOY()) devuelve 2026
  • =MES("16/4/2026") devuelve 4
  • =DIA(A1) devuelve el número de día de la fecha de A1
Uso práctico: agrupar datos por año o por mes. =AÑO(A1)&"-"&TEXTO(MES(A1);"00") crea una etiqueta de año y mes del estilo "2026-04" para agrupar en tablas dinámicas.

SIFECHA: calcular periodos entre fechas

SIFECHA calcula la diferencia entre dos fechas en años, meses o días. Es una función heredada (no aparece en el autocompletado), pero sigue funcionando en todas las versiones de Excel. Sintaxis: =SIFECHA(fecha_inicial; fecha_final; unidad) Unidades disponibles:
UnidadDevuelve
"Y"Años completos
"M"Meses completos
"D"Días totales
"YM"Meses sin contar los años completos
"YD"Días sin contar los años completos
"MD"Días sin contar los meses completos
Ejemplos:
  • =SIFECHA(A1; HOY(); "Y") devuelve la edad de una persona en años completos
  • =SIFECHA(A1; B1; "M") devuelve los meses completos entre A1 y B1
  • =SIFECHA(A1; B1; "D") devuelve los días totales (lo mismo que =B1 - A1)
Fórmula de edad (años y meses):
=SIFECHA(A1; HOY(); "Y") & " años y " & SIFECHA(A1; HOY(); "YM") & " meses"

Devuelve algo como «32 años y 4 meses».

Cuidado: la fecha_inicial debe ser anterior a la final o SIFECHA devuelve un error #¡NUM!. La unidad "MD" tiene errores conocidos con ciertas combinaciones de fechas; usa =DIAS(B1;A1) - SIFECHA(A1;B1;"M")*30 como alternativa si necesitas contar días con precisión.

DIAS: contar días sin más

DIAS devuelve el número de días entre dos fechas. Es más sencilla que SIFECHA cuando solo necesitas la cuenta de días. Sintaxis: =DIAS(fecha_final; fecha_inicial) Ejemplo:
  • =DIAS("31/12/2026"; "1/1/2026") devuelve 364
  • =DIAS(B1; A1) devuelve los días que van de A1 a B1
Fíjate en el orden de los argumentos: primero la fecha final y luego la inicial. Así el resultado es positivo cuando la final es posterior.

Para el mismo resultado puedes restar directamente: =B1 - A1 si las dos celdas tienen formato de fecha. DIAS deja más clara la intención y admite fechas escritas como texto.

FIN.MES: el final del mes

FIN.MES devuelve la fecha del último día de un mes, un número determinado de meses antes o después de una fecha inicial. Sintaxis: =FIN.MES(fecha_inicial; meses)
  • meses = 0 devuelve el último día del mes actual
  • meses = 1 devuelve el último día del mes siguiente
  • meses = -1 devuelve el último día del mes anterior
Ejemplos:
  • =FIN.MES(HOY(); 0) devuelve el último día del mes actual
  • =FIN.MES("15/3/2026"; 1) devuelve el 30 de abril de 2026
  • =FIN.MES("1/2/2028"; 0) devuelve el 29 de febrero de 2028 (gestiona los años bisiestos)
Caso de uso: periodos de cierre financiero. =FIN.MES(A1; 0) + 1 da el primer día del mes siguiente (último día del mes + 1 = primero del siguiente).

FECHA.MES: sumar meses a una fecha

FECHA.MES devuelve la fecha que está un número determinado de meses antes o después de una fecha inicial, cayendo en el mismo día del mes. Sintaxis: =FECHA.MES(fecha_inicial; meses) Ejemplos:
  • =FECHA.MES("31/1/2026"; 1) devuelve el 28 de febrero de 2026 (gestiona bien los finales de mes)
  • =FECHA.MES(HOY(); 6) devuelve la fecha de dentro de 6 meses
  • =FECHA.MES(A1; -3) devuelve la fecha de 3 meses antes de A1
FECHA.MES frente a sumar 30 días: =A1 + 30 siempre suma exactamente 30 días. =FECHA.MES(A1; 1) suma un mes natural: 15 de marzo + 1 mes = 15 de abril, tenga marzo los días que tenga. Usa FECHA.MES para caducidades de suscripciones, fines de contrato y todo aquello donde «un mes después» signifique algo.

DIASEM: el día de la semana

DIASEM devuelve un número que representa el día de la semana de una fecha dada. Sintaxis: =DIASEM(fecha; [tipo]) Tipos disponibles:
  • 1 (predeterminado): 1=domingo hasta 7=sábado
  • 2: 1=lunes hasta 7=domingo
  • 3: 0=lunes hasta 6=domingo
Ejemplos:
  • =DIASEM(HOY(); 2) devuelve 3 si hoy es miércoles (1=lun, 2=mar, 3=mié...)
  • =DIASEM("16/4/2026"; 1) devuelve 5 (el 16 de abril de 2026 es jueves; con el tipo 1, 5=jueves)
Caso de uso: identificar fines de semana. =SI(DIASEM(A1; 2) > 5; "Fin de semana"; "Día laborable") marca los sábados y domingos (días 6 y 7 con el tipo 2).

DIA.LAB: sumar días laborables

DIA.LAB devuelve la fecha que está un número determinado de días laborables (de lunes a viernes) antes o después de una fecha inicial, y opcionalmente se salta los festivos. Sintaxis: =DIA.LAB(fecha_inicial; días; [festivos]) Ejemplos:
  • =DIA.LAB(HOY(); 10) devuelve la fecha de dentro de 10 días laborables
  • =DIA.LAB("16/4/2026"; 5) devuelve el 23 de abril de 2026 (5 días laborables después, saltándose el fin de semana)
  • =DIA.LAB(A1; 30; ListaFestivos) devuelve 30 días laborables después de A1, saltándose las fechas de ListaFestivos
Función relacionada: DIA.LAB.INTL te deja indicar qué días son fin de semana (para semanas laborales no occidentales). Cálculo inverso: =DIAS.LAB(inicio; fin) cuenta los días laborables entre dos fechas, lo contrario de DIA.LAB.

TEXTO: dar formato a las fechas como texto

TEXTO convierte una fecha en una cadena con formato. Úsala cuando necesites incrustar una fecha dentro de un texto. Sintaxis: =TEXTO(valor; formato) Códigos de formato de fecha (en Excel en español el año se escribe con A, no con Y):
FormatoEjemplo de salida
"D/M/AAAA"16/4/2026
"D 'de' MMMM 'de' AAAA"16 de abril de 2026
"MMM AAAA"abr 2026
"AAAA-MM-DD"2026-04-16
"DDD"jue
"DDDD"jueves
Ejemplos:
  • =TEXTO(HOY(); "D 'de' MMMM 'de' AAAA") devuelve «16 de abril de 2026»
  • ="Informe de " & TEXTO(HOY(); "MMM AAAA") devuelve «Informe de abr 2026»
  • =TEXTO(A1; "AAAA-MM-DD") da a una celda de fecha el formato ISO para exportar datos

Preguntas frecuentes

¿Por qué Excel muestra un número en lugar de una fecha?

Excel guarda las fechas como números. Si una celda muestra algo como 46123 en lugar de una fecha, es que tiene formato General o Número. Selecciónala, presiona Ctrl+1 para abrir Formato de celdas y elige Fecha en la pestaña Número. Excel mostrará la fecha correspondiente a ese número de serie.

¿Cuál es la diferencia entre DIAS y SIFECHA con "D"? =DIAS(B1; A1) y =SIFECHA(A1; B1; "D") devuelven las dos el número de días entre dos fechas, pero con el orden de argumentos invertido. DIAS pone primero la fecha final; SIFECHA pone primero la inicial. Con la unidad "D" los resultados son idénticos. SIFECHA resulta más útil cuando además necesitas "Y" (años) o "YM" (meses restantes). ¿Cómo calculo la edad de alguien en Excel? =SIFECHA(fecha_de_nacimiento; HOY(); "Y") devuelve los años completos. Para una salida más completa: =SIFECHA(A1; HOY(); "Y") & " años". Usa siempre SIFECHA para la edad en lugar de =(HOY()-A1)/365,25: el método de la división da resultados algo imprecisos porque no tiene en cuenta si el cumpleaños ya ha pasado. ¿Por qué DIA.LAB se salta los festivos que le he dado?

El argumento de festivos debe ser un rango con fechas reales, no cadenas de texto. Comprueba que las celdas de tu lista tengan formato de fecha (no de texto) y que las fechas caigan dentro del periodo que estás calculando. Confirma también que no haya celdas en blanco en el rango, porque podrían interpretarse como 0 (que Excel trata como el 0 de enero de 1900).

¿Cómo obtengo el primer día del mes actual? =FECHA(AÑO(HOY()); MES(HOY()); 1) devuelve el primer día del mes actual. O, más corto: =FIN.MES(HOY(); -1) + 1 (último día del mes anterior + 1 = primer día de este).
Practica Funciones de fecha de Excel: HOY, AHORA, FECHA, SIFECHA, DIAS, FIN.MES y más →

Sigue adelante

Te indica qué leer a continuación.