top of page
Foto del escritorJaime Franco Jimenez

La Función MATRIZALEAT

Actualizado: 2 ene

La función MATRIZALEAT devuelve una matriz de números aleatorios.


Puede especificar el número de filas y columnas para rellenar, valores máximos y mínimos y si se deben devolver números enteros o valores decimales.


Sintaxis


=MATRIZALEAT([filas];[columnas];[mínimo];[máximo];[entero])


Notas:


  • Si no introduce un argumento de fila o columna, MATRIZALEAT devolverá un único valor entre 0 y 1.

  • Si no introduce un argumento de valor máximo o mínimo, MATRIZALEAT tendrá de forma predeterminada un valor igual a 0 y 1 respectivamente.

  • El argumento de número mínimo debe ser menor que el número máximo, en caso contrario, devolverá un error # VALOR!.

  • Si no introduce un argumento whole_number, o, entero en español, tendrá de forma predeterminada un valor decimal o FALSE.

  • La función MATRIZALEAT devolverá una matriz, que se desbordará si es el resultado final de una fórmula. Esto significa que Excel creará dinámicamente el rango de matriz del tamaño adecuado al presionar ENTRAR.

  • MATRIZALEAT es diferente de la función ALEATORIO en el que no devuelve una matriz, por lo que ALEATORIO necesita copiarse en todo el rango.

Una matriz puede considerarse como una fila de valores, una columna de valores o una combinación de filas y columnas de valores.


Excel ofrece soporte limitado para matrices dinámicas entre libros, solo se ofrece soporte para este escenario cuando ambos libros están abiertos. Si cierra el libro de origen, las fórmulas de matriz dinámica vinculadas devolverán un error # REF! al actualizarse.


En el ejemplo siguiente, se crea una matriz que tiene 5 filas de alto por 3 columnas de ancho, es decir, al argumento filas, le damos el valor de 5, y, al argumento columnas el valor de 3.


=MATRIZALEAT(5;3)








Podemos observar, que nos devuelve un numero entre 0, y, 1.


Vamos a crear el encabezado para los nombres de los meses, para ello, usaremos la función SECUENCIA, junto con la función TEXTO, FECHA, y, AÑO, esto ya lo hicimos en un ejemplo anterior, vamos a hacerlo para los tres primeros meses del año, que es el argumento mes de la función FECHA, pues, usaremos la función SECUENCIA, para que genere una matriz de 1 fila, y, tres columnas, la función TEXTO, la usamos para recuperar el nombre del mes, sabemos que tiene dos argumentos, el primer es valor, que es la función FECHA, y, el segundo es formato, pues, entre comillas dobles, ponemos “MMMM”, que es el nombre del mes, lo haremos de la siguiente manera:


=TEXTO(FECHA(AÑO(HOY());SECUENCIA(1;3);1);"mmmm")


Ya tendríamos el encabezado.






Lo siguiente, va a hacer crear la matriz, para ello, escribimos lo siguiente, creamos la matriz anterior, es decir, una matriz de cinco filas, y, tres columnas.


=MATRIZALEAT(5;3)


Aceptamos.


Devuelve un conjunto aleatorio de valores entre 0 y 1, que es el comportamiento predeterminado de MATRIZALEAT.










En la siguiente sintaxis, vamos a usar el argumento mínimo, donde vamos a poner 1, y, el argumento máximo, donde pondremos 100, pues, devuelve una serie de valores decimales aleatorios entre 1 y 100.


=MATRIZALEAT(5;3;1;100)









Por último, en el tercer ejemplo, usamos los mismos argumentos que en el ejemplo anterior, pero usamos el ultimo argumento, que es entero, donde lo ponemos como VERDADERO, quiere decir, que los valores a devolver deben de ser números enteros, el resultado sería:


=MATRIZALEAT(5;3;1;100;VERDADERO)










Sumar diagonales


Tenemos un modelo donde tenemos una serie de filas y de columnas.






Debemos de crear una matriz de tantas filas y columnas como indiquemos, y, sumar las diagonales.


En una celda, usamos LET, creamos una variable, la llamamos filass, seleccionamos la celda B2, creamos otra variable, la llamamos columnass, y, seleccionamos la celda B3.


=LET(filass;B2;columnass;B3

 

Creamos otra variable, usamos la funcion MATRIZALEAT, como argumento filas, ponemos la variable filass, como argumento columnas, ponemos la variable columnass, como argumento mínimo ponemos 1, como argumento máximo, ponemos 99, como argumento entero, seleccionamos entero.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);a)

 

Tenemos una matriz desbordada de cuatro filas y de cuatro columnas, con números aleatorios entre 1 y 99.







Debemos de sumar las diagonales.








Creamos otra variable, usamos la funcion SECUENCIA, como argumento filas ponemos la variable filass.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);b)

 

Tenemos una matriz desbordada en vertical, en este caso, desde el numero 1 al número 4.








Creamos otra variable, usamos SECUENCIA, omitimos el argumento filas, como argumento columnas ponemos la variable columnass.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);c)


Tenemos una matriz desbordada en horizontal desde el numero 1 al número 4.





Creamos otra variable, usamos el condicional SI, como argumento prueba lógica, ponemos la variable “b” y comparamos con la variable “c”, como argumento valor si verdadero, ponemos la variable “a”, como argumento valor si falso, ponemos blanco.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SI(b=c;a;"");d)


Ya tenemos la primera diagonal.







Usamos la funcion SUMA.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SUMA(SI(b=c;a;""));d)


Tenemos la suma de la primera diagonal.


Creamos otra variable, usamos la funcion ORDENAR, como argumento matriz, ponemos la variable “c”, omitimos el argumento ordenar índice, como argumento criterio ordenación, seleccionamos descendente, como argumento por_col, seleccionamos VERDADERO, es decir, ordenar por columnas.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SUMA(SI(b=c;a;""));e;ORDENAR(c;;-1;VERDADERO);e)


Tenemos la matriz de números ordenada de mayor a menor.




Creamos otra variable, usamos el condicional SI, como argumento prueba lógica, preguntamos si la variable “b” es igual a la variable “e”, como argumento valor si verdadero, ponemos la variable “a”, como argumento valor si falso, ponemos blanco.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SUMA(SI(b=c;a;""));e;ORDENAR(c;;-1;VERDADERO);f;SI(b=e;a;"");f)

 

Tenemos la segunda diagonal.










La sumamos.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SUMA(SI(b=c;a;""));e;ORDENAR(c;;-1;VERDADERO);f;SUMA(SI(b=e;a;""));f)


Usamos el argumento cálculo de LET, sumamos las variables d y f.


=LET(filass;B2;columnass;B3;a;MATRIZALEAT(filass;columnass;1;99;VERDADERO);b;SECUENCIA(filass);c;SECUENCIA(;columnass);d;SUMA(SI(b=c;a;""));e;ORDENAR(c;;-1;VERDADERO);f;SUMA(SI(b=e;a;""));d+f)


Ya lo tenemos.







Miguel Angel Franco

63 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page