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
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
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
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)
- =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
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:| Unidad | Devuelve |
| "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 |
- =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)
=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
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
- =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)
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
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
- =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)
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
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):| Formato | Ejemplo 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 |
- =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).