En resumen —
MATRIZALEAT([filas]; [columnas]; [mín]; [máx]; [número_entero])es el generador aleatorio todoterreno de Excel 365: una fórmula derrama todo un bloque de números aleatorios en vez de que arrastresALEATORIOmil filas hacia abajo. Los cinco argumentos son opcionales.=MATRIZALEAT()a secas se comporta comoALEATORIO(). El interruptor que decide decimales o enteros es el último argumento,número_entero, y valeFALSOpor defecto — así que obtienes decimales como3,71salvo que pasesVERDADEROexplícitamente. Sigue siendo volátil (se resortea en cada edición) y derrama, así que un rango bloqueado da#¡DESBORDAMIENTO!.
=MATRIZALEAT() ' -> 0,6218... un decimal en [0,1), como ALEATORIO()
=MATRIZALEAT(5) ' -> derrama 5 decimales aleatorios en una columna
=MATRIZALEAT(5; 3) ' -> derrama una cuadrícula 5×3 de decimales
=MATRIZALEAT(5; 3; 1; 100; VERDADERO) ' -> una cuadrícula 5×3 de enteros aleatorios 1–100
=SORTBY(A2:A20; MATRIZALEAT(FILAS(A2:A20))) ' -> baraja una lista en una fórmula
Si ya conoces ALEATORIO y ALEATORIO.ENTRE, MATRIZALEAT es el paso natural siguiente: hace lo que hacen las dos, para toda una región a la vez, y se redimensiona sola. Las pegas son el orden de los argumentos, un valor por defecto traicionero y el hecho de que —al ser una matriz dinámica— puede chocar con lo que tenga debajo.
Lo que vas a aprender
- El modelo mental: MATRIZALEAT es ALEATORIO + ALEATORIO.ENTRE, derramado
- Por qué el argumento
número_enterovale FALSO por defecto — el «¿por qué me salen decimales?» n.º 1 - El orden completo de los argumentos, y cómo se comportan
mín/máxpara decimales frente a enteros - Por qué sigue siendo volátil, y cuándo lanza
#¡DESBORDAMIENTO! - La combinación estrella:
SORTBY(lista; MATRIZALEAT(...))para barajar - Cuándo MATRIZALEAT no está disponible (y qué usar en su lugar)
El modelo mental: ALEATORIO y ALEATORIO.ENTRE, derramados
ALEATORIO da un decimal. ALEATORIO.ENTRE da un entero. Para llenar una tabla con
cualquiera de los dos, la vieja forma era escribir la fórmula una vez y arrastrarla por
cientos de celdas. MATRIZALEAT concentra todo eso en una sola fórmula que derrama — le
dices la forma (filas, columnas) y el sabor (rango, entero o no) y pinta el bloque entero
de una vez.
Esa es toda la idea: una función que es a la vez los dos dados clásicos y el
arrastre, fundidos en uno. Lee =MATRIZALEAT(5; 3; 1; 100; VERDADERO) como «dame una
cuadrícula de 5 por 3 de ALEATORIO.ENTRE(1;100)», y =MATRIZALEAT(5; 3) como «dame una
cuadrícula de 5 por 3 de ALEATORIO()». En cuanto lo ves como «ALEATORIO derramado /
ALEATORIO.ENTRE derramado», los argumentos dejan de parecer arbitrarios.
Los argumentos — y el FALSO por defecto que pilla a todos
Los cinco argumentos son opcionales, pero su orden importa y un valor por defecto sorprende a casi todo el mundo:
=MATRIZALEAT([filas]; [columnas]; [mín]; [máx]; [número_entero])
- filas, columnas — la forma del bloque derramado (por defecto 1 × 1).
- mín, máx — el rango (por defecto de
0a1). Ambos extremos son inclusivos cuando generas enteros. - número_entero —
VERDADEROpara enteros,FALSOpara decimales. Por defecto:FALSO.
Ese último valor por defecto es la pregunta número uno sobre MATRIZALEAT: «pedí números
entre 1 y 100 y me salió 47,83, ¿por qué?». Porque te paraste en máx y nunca pasaste
número_entero:
=MATRIZALEAT(5; 1; 1; 100) ' -> decimales como 47,83 (número_entero omitido = FALSO)
=MATRIZALEAT(5; 1; 1; 100; VERDADERO) ' -> enteros como 47 (número_entero = VERDADERO)
Regla: si quieres enteros, tienes que terminar la fórmula con VERDADERO. Dar mín
y máx no basta — devuelve decimales dentro de ese rango tan tranquilo. Esto es lo
contrario de ALEATORIO.ENTRE, que es solo de enteros, así que quien migra desde
ALEATORIO.ENTRE cae cada vez. (Un detalle más sobre enteros que vale un vistazo: con
número_entero en VERDADERO, mín y máx deben ser a su vez números enteros, o Excel
devuelve #¡VALOR! — y si mín es mayor que máx, otra vez #¡VALOR!.)
Sigue siendo volátil, y sigue derramando
MATRIZALEAT hereda los dos comportamientos que definen la aleatoriedad con matrices dinámicas:
- Volátil — como ALEATORIO y ALEATORIO.ENTRE, se resortea en cada recálculo:
cualquier edición,
F9, ordenación o apertura del archivo. Si necesitas conservar un resultado, congélalo igual: selecciona el derrame, Copia, Pegado especial → Valores. (Congela el rango derramado entero de una vez, no solo la celda superior izquierda.) - Derrame — escribe en las celdas de debajo y a la derecha de donde la tecleaste. Si
ya hay algo en ese bloque, obtienes un error
#¡DESBORDAMIENTO!en vez de números. Quita el estorbo y la matriz aparece.
=MATRIZALEAT(1000; 1; 1; 100; VERDADERO) ' llena 1000 celdas desde UNA fórmula...
' ...pero resortea las 1000 en cada recálculo
Esa volatilidad merece respeto a gran escala: un MATRIZALEAT de mil celdas recalcula cada una de sus celdas en cada pulsación en otro punto del libro. Para un modelo de hipótesis en vivo, perfecto; para un conjunto de datos que ya diste por bueno, congélalo para que paren los recálculos.
La combinación estrella: barajar una lista con SORTBY + MATRIZALEAT
Lo más útil que hace MATRIZALEAT no es generar números que conservas — es generar números por los que ordenas y luego tiras. Combínalo con SORTBY y barajas una lista en una sola fórmula, sin columna auxiliar:
=SORTBY(A2:A20; MATRIZALEAT(FILAS(A2:A20))) ' -> la lista en orden aleatorio
=TAKE(SORTBY(A2:A20; MATRIZALEAT(FILAS(A2:A20))); 5) ' -> una muestra aleatoria de 5, sin repetir
MATRIZALEAT(FILAS(...)) fabrica una clave aleatoria por fila; SORTBY ordena las filas
por esas claves; la aleatoriedad desaparece en cuanto ha hecho su trabajo. Como cada fila
recibe una clave distinta y simplemente se reordena, nada se repite — que es exactamente
el comportamiento sin reemplazo que ALEATORIO.ENTRE no puede darte. Este patrón es la
columna vertebral de la selección y el muestreo aleatorios,
y MATRIZALEAT es lo que lo convierte en una sola línea en 365.
El criterio
En Excel 365, MATRIZALEAT deja obsoleto lo de «arrastrar ALEATORIO 1000 filas» — una
fórmula, sin arrastrar, y se redimensiona sola cuando crecen tus datos. Échale mano
siempre que necesites un bloque de aleatoriedad o una clave de orden aleatoria. Las dos
cosas que hay que tener en la cabeza son el valor por defecto número_entero = FALSO
(termina con VERDADERO cuando quieras enteros) y la volatilidad (congela a valores en
cuanto un resultado sea definitivo). La única vez que no conviene usarla es por
compatibilidad: MATRIZALEAT es una función de matriz dinámica, así que solo existe en
Excel 365 y Excel 2021 — si tu libro tiene que funcionar en Excel 2019 o anterior,
recurre a ALEATORIO y ALEATORIO.ENTRE arrastradas a la
vieja usanza.
Cómo te ayuda ExcelMaster
El valor por defecto FALSO y la mecánica del derrame son fáciles de olvidar, así que deja
que los cargue un asistente de fórmulas. Pídele a ExcelMaster «una cuadrícula 10×5 de
enteros aleatorios del 1 al 100» y escribe =MATRIZALEAT(10; 5; 1; 100; VERDADERO) — con
el VERDADERO que se te habría escapado — y apunta el derrame a un rango vacío para que
nunca veas #¡DESBORDAMIENTO!. Pídele «baraja esta lista» o «saca una muestra aleatoria
de 25 filas» y construye la combinación SORTBY(...; MATRIZALEAT(...)), y luego se ofrece
a congelar la salida a valores para que tu muestra deje de moverse. Y si detecta que tu
archivo apunta a un Excel más antiguo, recurre en silencio a un enfoque basado en
ALEATORIO que sí funcionará allí.
Preguntas frecuentes
¿Qué hace la función MATRIZALEAT en Excel?
=MATRIZALEAT([filas]; [columnas]; [mín]; [máx]; [número_entero]) devuelve una matriz
derramada de números aleatorios. Sin argumentos devuelve un solo decimal en [0, 1) como
ALEATORIO(); con filas y columnas llena todo un bloque; con mín, máx y
número_entero en VERDADERO llena ese bloque con enteros aleatorios en tu rango. Es el
generador aleatorio todo en uno de Excel 365.
¿Por qué MATRIZALEAT me da decimales en lugar de números enteros?
Porque el argumento número_entero vale FALSO por defecto. Pasar mín y máx solo
fija el rango — no fuerza enteros. Para obtener números enteros tienes que añadir
VERDADERO como quinto argumento: =MATRIZALEAT(5; 1; 1; 100; VERDADERO). Sin él,
MATRIZALEAT devuelve decimales dentro de [mín, máx].
¿MATRIZALEAT es volátil? ¿Cómo evito que se recalcule?
Sí — igual que ALEATORIO y ALEATORIO.ENTRE, se resortea en cada recálculo. Para conservar un resultado, selecciona todo el rango derramado, Copia y luego Pegado especial → Valores. Eso convierte la matriz entera en números estáticos que ya no cambian.
¿Por qué MATRIZALEAT muestra un error #¡DESBORDAMIENTO!?
MATRIZALEAT es una matriz dinámica que derrama en las celdas de debajo y a la derecha de
la fórmula. Si alguna de esas celdas ya contiene datos, Excel no puede derramar y muestra
#¡DESBORDAMIENTO!. Borra o mueve lo que bloquee el rango de derrame y la matriz
aparecerá.
¿Cómo barajo una lista o saco una muestra aleatoria con MATRIZALEAT?
Ordena por una clave aleatoria: =SORTBY(rango; MATRIZALEAT(FILAS(rango))) devuelve la
lista en orden aleatorio, y =TAKE(SORTBY(rango; MATRIZALEAT(FILAS(rango))); n) saca una
muestra aleatoria de n sin repeticiones. Mira Cómo seleccionar, muestrear y barajar al
azar en Excel.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación el 11/07/2026.
Guías relacionadas: Excel ALEATORIO y ALEATORIO.ENTRE · Selección y muestreo aleatorios · Excel SORT y SORTBY · Excel TAKE y DROP
