Estoy seguro de que ya conoces las funciones ALEATORIO y ALEATORIO.ENTRE. Ambas sirven para generar un número aleatorio. La primera devuelve un número entre 0 y 1 con 15 decimales y en la segunda puedes personalizar los límites mínimo y máximo (devuelve números enteros).
Microsoft ha introducido la función MATRIZALEAT capaz de sustituir a las dos anteriores. Además de establecer valores máximo y mínimo personalizados te permite especificar cuántas filas y columnas quieres rellenar y si debe devolver números enteros o decimales.
MATRIZALEAT devuelve una matriz de números aleatorios entre dos números cualesquiera que especifiques. Como se trata de una función de matriz dinámica, el resultado también es una matriz dinámica cuyo tamaño se extiende hasta el número de filas y columnas introducido.
Observa su sintaxis:
=MATRIZALEAT([filas];[columnas];[mínimo];[máximo];[tipo])
Resulta curioso que se puedan introducir cinco argumentos y que los cinco sean opcionales ¿verdad? Si no introduces ninguno de ellos la función devuelve una matriz de una fila por una columna entre los números 0 y 1 (exactamente igual que ALEATORIO).
Para ver la sintaxis completa haz clic aquí.
Cómo usar MATRIZALEAT
Te pongo un ejemplo sencillo:
Imagina que quieres rellenar un rango de celdas de 5 filas y 4 columnas con números aleatorios. Para hacerlo no tienes más que introducir la fórmula =MATRIZALEAT(5;4)
Los demás argumentos se quedan en sus valores predeterminados. Al no establecer los argumentos mínimo y máximo la función devuelve números entre cero y uno y si se deja en blanco tipo, Excel considera que debe devolver números decimales.
En caso de que desees una matriz de números aleatorios en un rango de números específico debes introducir los argumentos mínimo y máximo (obviamente máximo debe ser más alto que mínimo para no encontrarte con un error). Dependiendo de si quieres números decimales o enteros tendrías que establecer el quinto argumento como VERDADERO (números enteros) o FALSO (números decimales).
Para generar una matriz de 6 filas y tres columnas de números enteros comprendidos entre 1 y 100 introduce la siguiente fórmula:
=MATRIZALEAT(6;3;1;100;1)
Observa que en lugar de escribir VERDADERO para el último argumento he introducido el número 1. En los argumentos que admiten valores booleanos puedes sustituir VERDADERO por 1 y FALSO por 0.
En los ejemplos anteriores puede darse el caso de que los números aleatorios se repitan. Esto no es muy útil, por ejemplo, para rellenar los números de la Lotería Primitiva.
Si lo que deseas es obtener una lista de números aleatorios sin repetición (como en la lotería) puedes utilizar este fórmula:
=INDICE(UNICOS(MATRIZALEAT(6; 1; 1; 49; VERDADERO)); SECUENCIA(6))
MATRIZALEAT con letras
Los ejemplos anteriores estaban basados en números pero también es posible obtener una matriz de letras aleatorias a partir de un ejemplo. Echa un vistazo a esta fórmula:
=UNIRCADENAS(; ; ORDENARPOR(EXTRAE(B3; SECUENCIA(LARGO(B3)); 1); MATRIZALEAT(LARGO(B3))))
En la celda B3 tengo una cadena de caracteres. Como ves en la imagen es posible ordenarlos de forma aleatoria:
E igual que se pueden desordenar los caracteres de una celda también es posible desordenar los valores de una matriz.
Los archivos de todos los ejemplos anteriores se encuentran en la ficha de la función MATRIZALEAT.
Qué hacer cuando MATRIZALEAT devuelve un error
Los errores que podrías obtener al trabajar con MATRIZALEAT son los siguientes:
- #¡DESBORDAMIENTO!: La causa principal de este error es el espacio insuficiente para mostrar el resultado al completo. Para solucionarlo borra las celdas que se encuentren alrededor y que impidan expandir la matriz.
- #¡VALOR!: Se mostrará en caso de que el argumento máximo sea inferior a mínimo o si alguno de los argumentos no es numérico.
- #¡NOMBRE!: En caso de que no tengas instalado Excel365 obtendrás este error. MATRIZALEAT solo se puede usar en esta versión. Si ya lo tienes instalado y se sigue mostrando, es porque has introducido incorrectamente el nombre de alguna función.
- #¡CALC!: Cuando los argumentos filas o columnas contienen valores inferiores a 1. En caso de que se haga referencia a otras celdas revisa los valores que haya en ellas.
Resumen
En mi repositorio personal de ‘archivos útiles’ tengo uno que genera datos aleatorios. Lo uso principalmente para generar los datos de ejemplo que ves en muchos de los artículos. En él siempre he utilizado ALEATORIO.ENTRE (usado junto con ELEGIR) para crear nombres y apellidos de personas, direcciones, incluso nombres de productos. Tras escribir sobre MATRIZALEAT me he dado cuenta de que la mayor parte de las fórmulas de este archivo se pueden simplificar para que funcione más rápido y ocupe menos espacio.
MATRIZALEAT, una buena alternativa a las funciones clásicas de generación de números aleatorios.