Lección 11 de 37Funciones Lógicas y de Texto

Funciones de fecha y hora

Trabaja con fechas, horas y cálculos temporales.

10 minutos

Las fechas en Excel son números que representan días desde el 1 de enero de 1900. Entender esto es clave para manipularlas correctamente. En esta lección dominarás las funciones para extraer componentes, calcular diferencias y trabajar con días laborales.

Cómo Excel almacena fechas

Excel almacena fechas como números seriales:

Fecha Número serial
01/01/1900 1
01/01/2000 36526
29/01/2026 46050

Las horas son fracciones decimales del día:

Hora Fracción
00:00 (medianoche) 0.0
06:00 0.25
12:00 (mediodía) 0.5
18:00 0.75

Por eso funciona la aritmética:

=A2+7        // Sumar 7 días
=A2-B2       // Diferencia en días
=A2+0.5      // Agregar 12 horas

Funciones básicas: HOY y AHORA

HOY (TODAY)

Devuelve la fecha actual (sin hora).

=HOY()
// → 29/01/2026 (se actualiza automáticamente)

AHORA (NOW)

Devuelve la fecha y hora actual.

=AHORA()
// → 29/01/2026 14:35:22

Usos prácticos:

// Días hasta una fecha límite
=A2-HOY()

// Días transcurridos desde un evento
=HOY()-B2

// Edad en años (aproximado)
=ENTERO((HOY()-A2)/365)

// Marca de tiempo en reporte
="Generado: " & TEXTO(AHORA(), "DD/MM/YYYY HH:MM")

Extraer componentes de fecha

AÑO, MES, DIA

Extraen componentes numéricos de una fecha.

=AÑO(fecha)   // Devuelve el año (4 dígitos)
=MES(fecha)   // Devuelve el mes (1-12)
=DIA(fecha)   // Devuelve el día (1-31)

Ejemplos con fecha 29/01/2026:

=AÑO(A2)      // → 2026
=MES(A2)      // → 1
=DIA(A2)      // → 29

Casos de uso:

// Agrupar ventas por año
=AÑO(B2)

// Filtrar datos del mes actual
=SI(MES(A2)=MES(HOY()), "Mes actual", "Otro mes")

// Crear período "Enero 2026"
=TEXTO(A2, "MMMM YYYY")

DIASEM (WEEKDAY)

Devuelve el día de la semana como número.

=DIASEM(fecha, [tipo])
Tipo Domingo Lunes ... Sábado
1 (o sin tipo) 1 2 ... 7
2 7 1 ... 6
3 6 0 ... 5

Ejemplos:

// Día de la semana (Domingo=1)
=DIASEM(A2, 1)

// Día de la semana (Lunes=1)
=DIASEM(A2, 2)

// Verificar si es fin de semana
=SI(O(DIASEM(A2)=1, DIASEM(A2)=7), "Fin de semana", "Día laboral")

// Nombre del día
=ELEGIR(DIASEM(A2), "Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb")

HORA, MINUTO, SEGUNDO

Extraen componentes de tiempo.

=HORA(A2)     // Hora (0-23)
=MINUTO(A2)   // Minutos (0-59)
=SEGUNDO(A2)  // Segundos (0-59)
// De "14:35:22"
=HORA(A2)     // → 14
=MINUTO(A2)   // → 35
=SEGUNDO(A2)  // → 22

Crear fechas: FECHA y HORA

FECHA (DATE)

Crea una fecha a partir de año, mes y día.

=FECHA(año, mes, día)
=FECHA(2026, 1, 29)  // → 29/01/2026

// Fecha con valores de otras celdas
=FECHA(A2, B2, C2)

// Primer día del mes actual
=FECHA(AÑO(HOY()), MES(HOY()), 1)

// Último día del año
=FECHA(AÑO(HOY()), 12, 31)

HORA (TIME)

Crea un valor de hora.

=HORA(hora, minuto, segundo)
=HORA(14, 30, 0)  // → 14:30:00

// Combinar fecha y hora
=A2 + HORA(9, 0, 0)  // Agregar 9:00 AM a una fecha

Calcular diferencias: SIFECHA

SIFECHA (DATEDIF)

Calcula la diferencia entre dos fechas en diferentes unidades.

=SIFECHA(fecha_inicial, fecha_final, unidad)
Unidad Descripción
"Y" Años completos
"M" Meses completos
"D" Días
"YM" Meses, ignorando años
"YD" Días, ignorando años
"MD" Días, ignorando meses y años

Nota: SIFECHA es una función "oculta" que no aparece en autocompletar pero funciona perfectamente.

Ejemplos:

// Años de antigüedad
=SIFECHA(A2, HOY(), "Y")

// Meses de antigüedad
=SIFECHA(A2, HOY(), "M")

// Edad completa: "35 años, 4 meses, 12 días"
=SIFECHA(A2, HOY(), "Y") & " años, " & SIFECHA(A2, HOY(), "YM") & " meses, " & SIFECHA(A2, HOY(), "MD") & " días"

Cálculos de antigüedad laboral

// Fecha de ingreso en A2

// Años de antigüedad
=SIFECHA(A2, HOY(), "Y")

// Antigüedad para vacaciones (días según años)
=SI(SIFECHA(A2, HOY(), "Y")>=5, 20,
    SI(SIFECHA(A2, HOY(), "Y")>=2, 15,
        SI(SIFECHA(A2, HOY(), "Y")>=1, 10, 0)))

// Elegibilidad para jubilación (65 años)
=SI(SIFECHA(A2, HOY(), "Y")>=65, "Elegible", "No elegible")

Alternativas a SIFECHA

// Diferencia en días (simple resta)
=B2-A2

// Diferencia en años (aproximado)
=ENTERO((B2-A2)/365)

// Diferencia en meses (aproximado)
=ENTERO((B2-A2)/30)

// Diferencia en semanas
=ENTERO((B2-A2)/7)

Días laborales: DIA.LAB y DIAS.LAB

DIA.LAB (WORKDAY)

Calcula una fecha futura/pasada saltando fines de semana.

=DIA.LAB(fecha_inicio, días, [festivos])

Ejemplos:

// 10 días hábiles después de hoy
=DIA.LAB(HOY(), 10)

// 5 días hábiles antes de una fecha
=DIA.LAB(A2, -5)

// Con días festivos (lista en F2:F10)
=DIA.LAB(HOY(), 10, F2:F10)

DIAS.LAB (NETWORKDAYS)

Cuenta días laborales entre dos fechas.

=DIAS.LAB(fecha_inicio, fecha_fin, [festivos])

Ejemplos:

// Días hábiles entre dos fechas
=DIAS.LAB(A2, B2)

// Días hábiles del mes actual
=DIAS.LAB(FECHA(AÑO(HOY()), MES(HOY()), 1), FIN.MES(HOY(), 0))

// Con festivos
=DIAS.LAB(A2, B2, Festivos)

Versiones internacionales (.INTL)

// Personalizar qué días son no laborables
=DIA.LAB.INTL(fecha, días, fin_semana, festivos)
=DIAS.LAB.INTL(inicio, fin, fin_semana, festivos)
Código fin_semana Días no laborables
1 Sábado, Domingo
2 Domingo, Lunes
7 Solo Viernes
11 Solo Domingo
// Solo domingo como día no laboral
=DIA.LAB.INTL(HOY(), 10, 11)

// Viernes y sábado no laborables (países árabes)
=DIAS.LAB.INTL(A2, B2, 7)

Fin de mes: FIN.MES

FIN.MES (EOMONTH)

Devuelve el último día de un mes, N meses antes o después.

=FIN.MES(fecha, meses)
Meses Resultado
0 Último día del mes de la fecha
1 Último día del siguiente mes
-1 Último día del mes anterior

Ejemplos:

// Último día de este mes
=FIN.MES(HOY(), 0)

// Último día del próximo mes
=FIN.MES(HOY(), 1)

// Último día del mes anterior
=FIN.MES(HOY(), -1)

// Fecha de vencimiento (fin del mes + 30 días)
=FIN.MES(A2, 0)+30

// Primer día del mes siguiente
=FIN.MES(HOY(), 0)+1

Casos de uso de FIN.MES

// Días restantes del mes
=FIN.MES(HOY(), 0)-HOY()

// Primer día del mes actual
=FIN.MES(HOY(), -1)+1

// Verificar si es fin de mes
=SI(HOY()=FIN.MES(HOY(), 0), "Último día del mes", "")

// Trimestre: primer y último día
=FIN.MES(FECHA(AÑO(A2), ((ENTERO((MES(A2)-1)/3))*3)+1, 1), -1)+1  // Primer día
=FIN.MES(FECHA(AÑO(A2), ((ENTERO((MES(A2)-1)/3)+1)*3), 1), 0)     // Último día

Casos de uso empresariales

Caso 1: Sistema de antigüedad y vacaciones

// Columnas: A=Nombre, B=Fecha ingreso

// Antigüedad (años completos)
=SIFECHA(B2, HOY(), "Y")

// Días de vacaciones según antigüedad
=IFS(
    SIFECHA(B2, HOY(), "Y")>=10, 25,
    SIFECHA(B2, HOY(), "Y")>=5, 20,
    SIFECHA(B2, HOY(), "Y")>=2, 15,
    SIFECHA(B2, HOY(), "Y")>=1, 10,
    VERDADERO, 0
)

// Fecha de próximo aniversario
=FECHA(SI(FECHA(AÑO(HOY()), MES(B2), DIA(B2))<HOY(), AÑO(HOY())+1, AÑO(HOY())), MES(B2), DIA(B2))

Caso 2: Cálculo de plazos de entrega

// Fecha de pedido en A2, plazo en días hábiles en B2

// Fecha prometida de entrega
=DIA.LAB(A2, B2, Festivos)

// Días hábiles restantes para entrega
=DIAS.LAB(HOY(), DIA.LAB(A2, B2, Festivos), Festivos)

// Estado del pedido
=SI(HOY()>DIA.LAB(A2, B2, Festivos), "ATRASADO",
    SI(DIAS.LAB(HOY(), DIA.LAB(A2, B2, Festivos), Festivos)<=2, "URGENTE", "EN TIEMPO"))

Caso 3: Reporte de ventas por período

// Fecha de venta en A2

// Año fiscal (si cierra en marzo)
=SI(MES(A2)>=4, AÑO(A2), AÑO(A2)-1)

// Trimestre
="Q" & (ENTERO((MES(A2)-1)/3)+1)

// Semana del año
=NUM.DE.SEMANA(A2)

// Período "Enero 2026"
=TEXTO(A2, "MMMM YYYY")

Caso 4: Cálculo de intereses por días

// Fecha de factura A2, fecha de pago B2, monto C2, tasa anual D2

// Días transcurridos
=B2-A2

// Interés simple
=C2 * (D2/365) * (B2-A2)

// Días de mora (si hay fecha límite en E2)
=MAX(0, B2-E2)

Caso 5: Calendario de pagos mensuales

// Fecha inicial del préstamo en A2, número de pago en B2

// Fecha de cada pago (fin de mes)
=FIN.MES(A2, B2-1)

// Días entre pagos
=FIN.MES(A2, B2)-FIN.MES(A2, B2-1)

Aritmética de fechas: Resumen

Operación Fórmula
Sumar días =A2+N
Restar días =A2-N
Diferencia en días =B2-A2
Sumar meses =FIN.MES(A2, N)+DIA(A2)
Sumar años =FECHA(AÑO(A2)+N, MES(A2), DIA(A2))
Días hábiles después =DIA.LAB(A2, N)
Sumar horas =A2+HORA(N, 0, 0)

Errores comunes y soluciones

Error 1: Fechas almacenadas como texto

// Problema: "29/01/2026" es texto, no fecha
=AÑO(A2)  // Error o resultado incorrecto

// Solución: Convertir a fecha
=FECHANUMERO(A2)
// o
=FECHA(DERECHA(A2,4), EXTRAE(A2,4,2), IZQUIERDA(A2,2))

Error 2: SIFECHA con fechas invertidas

// Problema: Fecha final antes que inicial
=SIFECHA("2026-01-29", "2020-01-01", "Y")  // Error

// Solución: Verificar orden
=SI(A2<B2, SIFECHA(A2, B2, "Y"), SIFECHA(B2, A2, "Y"))

Error 3: Olvidar festivos en DIA.LAB

// Problema: Calcula sin considerar festivos
=DIA.LAB(HOY(), 10)  // Incluye festivos como laborables

// Solución: Crear lista de festivos
=DIA.LAB(HOY(), 10, ListaFestivos)

Práctica: Ejercicios propuestos

Ejercicio 1: Calculadora de edad

Crear fórmula que muestre "X años, Y meses" desde fecha de nacimiento.

Ejercicio 2: Días para fin de trimestre

Calcular cuántos días hábiles faltan para el fin del trimestre actual.

Ejercicio 3: Fecha de vencimiento de factura

Si una factura se emite el 15 del mes, calcular vencimiento a 30 días hábiles.

Puntos clave de esta lección

  • Excel almacena fechas como números seriales (días desde 01/01/1900)
  • HOY() y AHORA() devuelven fecha/hora actual
  • AÑO, MES, DIA extraen componentes de una fecha
  • SIFECHA calcula diferencias en años, meses o días
  • DIA.LAB y DIAS.LAB trabajan con días hábiles, excluyendo fines de semana
  • FIN.MES encuentra el último día de cualquier mes
  • La aritmética simple (A2+7) funciona porque las fechas son números
  • Siempre verifica si tus datos son fechas reales o texto

Próxima lección

En el siguiente módulo explorarás las funciones de búsqueda avanzadas: BUSCARV, BUSCARH, INDICE, COINCIDIR y la nueva función BUSCARX. Aprenderás a conectar datos entre diferentes tablas.


Quiz de comprensión

  1. ¿Qué número serial representa la fecha 01/01/1900 en Excel?

  2. ¿Cuál es la diferencia entre HOY() y AHORA()?

  3. Escribe una fórmula para calcular los años completos entre una fecha de nacimiento (A2) y hoy.

  4. ¿Qué función usarías para obtener el último día del mes de una fecha?

  5. ¿Cómo calcularías la fecha que será dentro de 15 días hábiles (sin contar fines de semana)?

  6. ¿Qué devuelve =DIASEM("29/01/2026", 2) si ese día es jueves?

¿Completaste esta lección?

Marca esta lección como completada. Tu progreso se guardará en tu navegador.