Para generar una fecha aleatoria entre dos fechas en Excel se usa la función ALEATORIO.ENTRE con la fecha inicial y la final: =ALEATORIO.ENTRE(FECHA(2026;1;1);FECHA(2026;12;31)). Funciona porque Excel guarda las fechas como números. Con variaciones de la misma fórmula se generan también horas, días hábiles o fechas de nacimiento. ¿Cómo se escribe cada una?
Fecha aleatoria entre dos fechas.
ALEATORIO.ENTRE devuelve un número entero al azar entre un mínimo y un máximo. Como cada fecha es un número de serie, basta con darle como límites las dos fechas:
=ALEATORIO.ENTRE(FECHA(2026;1;1);FECHA(2026;12;31))
Si las fechas límite están en celdas, por ejemplo en B3 y B4, la fórmula es =ALEATORIO.ENTRE($B$3;$B$4). El resultado es un número como 46200; para verlo como fecha, la celda debe tener formato de fecha.
- Proyección y planeación pensional
- Calculadora de retención en la fuente por salarios
- Liquidador de intereses propiedad horizontal
Por qué no conviene armar la fecha con FECHA y tres números aleatorios.
Una fórmula que se encuentra con frecuencia es esta:
=FECHA(ALEATORIO.ENTRE(2018;2021);ALEATORIO.ENTRE(1;12);ALEATORIO.ENTRE(1;31))
Tiene un problema: cuando el mes sorteado tiene menos de 31 días y el día sorteado es mayor, FECHA pasa la fecha al mes siguiente. El 31 de febrero se convierte en el 3 de marzo, y el 31 de diciembre de 2021 puede convertirse en enero de 2022, fuera del rango buscado. Además, los primeros días de cada mes salen con más frecuencia que los demás. Con ALEATORIO.ENTRE sobre las fechas completas, todas las fechas del rango tienen la misma probabilidad.
Fecha y hora aleatorias.
La hora es la parte decimal de la fecha, de modo que se suma un número aleatorio entre 0 y 1 con ALEATORIO:
=ALEATORIO.ENTRE($B$3;$B$4)+ALEATORIO()
Con el formato dd/mm/aaaa hh:mm la celda muestra una fecha y una hora al azar.
Días hábiles aleatorios.
Para que la fecha caiga siempre entre lunes y viernes, se sortea un número de días hábiles y se suma con DIA.LAB:
=DIA.LAB($B$3-1;ALEATORIO.ENTRE(1;DIAS.LAB($B$3;$B$4)))
DIAS.LAB cuenta los días hábiles del rango, y DIA.LAB avanza ese número de días hábiles desde la fecha inicial. Para excluir también los festivos, se agrega la lista de festivos como último argumento de ambas funciones, como se explica en el artículo sobre cómo sumar días hábiles a una fecha en Excel.
Fechas de nacimiento aleatorias.
Para generar fechas de nacimiento de personas que hoy tengan entre 18 y 65 años, los límites se calculan restando años a la fecha actual con FECHA.MES:
=ALEATORIO.ENTRE(FECHA.MES(HOY();-12*66)+1;FECHA.MES(HOY();-12*18))
La fecha más antigua es la de alguien que cumple 66 años mañana, y la más reciente, la de alguien que cumple 18 hoy. Son útiles para crear bases de datos de prueba sin usar datos personales reales.
Varias fechas a la vez con MATRIZALEAT.
En Microsoft 365 y Excel 2021, MATRIZALEAT genera una lista completa con una sola fórmula. Sus argumentos son las filas, las columnas, el mínimo, el máximo y VERDADERO para que los resultados sean enteros:
=MATRIZALEAT(10;1;FECHA(2026;1;1);FECHA(2026;12;31);VERDADERO)
La fórmula llena diez celdas hacia abajo con fechas al azar del año 2026.
Fijar las fechas generadas.
ALEATORIO.ENTRE, ALEATORIO y MATRIZALEAT son volátiles: generan nuevos valores cada vez que la hoja se recalcula, por ejemplo al escribir en cualquier celda o al presionar F9. Para conservar las fechas obtenidas, se copia el rango y se pega sobre sí mismo con «Pegado especial», «Valores».
Para fijar una sola fecha sin copiar, se selecciona la celda, se presiona F2 para editarla y luego F9: la fórmula se reemplaza por su resultado.
Descargar el ejemplo en Excel.
El archivo genera quince fechas con cada método del artículo: fecha aleatoria, fecha y hora, día hábil y fecha de nacimiento para edades de 18 a 65 años, más la fórmula con FECHA para comparar. Las fechas límite se cambian en dos celdas, y una segunda hoja tiene MATRIZALEAT para Microsoft 365. Descargar archivo.
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cómo genero una fecha aleatoria en Excel?
Con =ALEATORIO.ENTRE(fecha_inicial;fecha_final) y formato de fecha en la celda.
¿Por qué la fecha aleatoria aparece como un número?
Porque la celda tiene formato general. Hay que aplicarle formato de fecha.
¿Cómo evito que las fechas cambien?
Copiándolas y pegándolas como valores, o con F2 y F9 en cada celda.
¿Cómo genero fechas aleatorias solo en días hábiles?
Con =DIA.LAB(inicio-1;ALEATORIO.ENTRE(1;DIAS.LAB(inicio;fin))).
¿Cómo genero fechas de nacimiento aleatorias?
Con ALEATORIO.ENTRE entre las fechas que corresponden a las edades mínima y máxima, calculadas con FECHA.MES(HOY();-12*edad).