Función ARCHIVOMAKEARRAY
- Jaime Franco Jimenez

- 21 jun 2023
- 4 Min. de lectura
Veamos la función ARCHIVOMAKEARRAY, devuelve una matriz especificando el número de filas y de columnas especificado, aplicando una función LAMBDA.
Sintaxis
=MAKEARRAY(rows, cols, lambda(row, col))
· Rows, es el número de filas de la matriz, el cual debe ser mayor que cero.
· Cols, es el número de columnas de la matriz, también, debe ser mayor que cero.
· Lambda, LAMBDA a la que se llama para crear la matriz, esta función toma dos parámetros.
o Row, Índice de fila de la matriz.
o Col, Índice de columna de la matriz.
Veamos un ejemplo, vamos a crear una matriz de 4 filas, y, de tres columnas, para ello, en una celda, ponemos la función ARCHIVOMAKEARRAY, como argumento rows (filas), ponemos 4, como argumento cols (columnas), ponemos 3.
=ARCHIVOMAKEARRAY(4;3
Punto y coma, ponemos la función LAMBDA, declaramos dos variables, multiplicamos la primera variable por la segunda variable.
Cerramos paréntesis.
=ARCHIVOMAKEARRAY(4;3;LAMBDA(a;b;a*b))
Aceptamos, y, tenemos una matriz de cuatro filas, y, tres columnas con los siguientes valores:

Veamos de donde salen estos valores, pongamos en vertical los números 1, 2, 3, y, 4, y, en horizontal los números 1, 2, y, 3.

La primera secuencia de números sale de multiplicar:


La segunda secuencia de números sale de multiplicar.


La tercera secuencia sale de multiplicar:


Y, la cuarta secuencia sale de multiplicar:


Veamos otro ejemplo, en este caso, tenemos las siguientes filas y columnas.

Tenemos los siguientes colores, y, a cada color le corresponde un número.

Bien, si elegimos un color, por ejemplo, verde, nos debe de devolver el verde y los colores de detrás.
Para elegir el color, he creado una lista desplegable con los tres colores.

En la celda A4, ponemos la función ARCHIVOMAKEARRAY, como argumento filas, seleccionamos la celda A2.
=ARCHIVOMAKEARRAY(A2
Punto y coma, como argumento columnas, vamos a usar la función BUSCARX, donde como argumento valor buscado, es el valor de la celda F2, que es donde hemos seleccionado un color, punto y coma, como argumento matriz buscada, seleccionamos el rango C2:E2 (colores), como argumento matriz devuelta, seleccionamos el rango C1:E1 (Valores).
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1)
Punto y coma, como argumento función, ponemos la función LAMBDA, declaramos dos variables, la primera variable almacena las filas, y, la segunda variable, almacena las columnas.
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1);LAMBDA(a;b
Punto y coma, como argumento cálculo de LAMBDA, ponemos la función ELEGIR, como argumento número de índice de ELEGIR, ponemos la variable “b”.
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1);LAMBDA(a;b;ELEGIR(b
Como argumento valor1, seleccionamos la celda C2 (azul).
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1);LAMBDA(a;b;ELEGIR(b;C2
Punto y coma, como argumento valor2, seleccionamos la celda D2 (Verde).
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1);LAMBDA(a;b;ELEGIR(b;C2;D2
Punto y coma, como argumento valor3, seleccionamos la celda E2.
Cerramos paréntesis.
=ARCHIVOMAKEARRAY(A2;BUSCARX(F2;C2:E2;C1:E1);LAMBDA(a;b;ELEGIR(b;C2;D2;E2)))
He seleccionado el color verde.
Aceptamos, y, tenemos una matriz de dos columnas, donde en la primera columna, tenemos seis veces el color azul, y, en la segunda columna, tenemos seis veces el color verde.

Si seleccionamos el color negro, tendremos una matriz de seis filas, y, tres columnas, donde en cada columna tenemos un color.
Con esta función crear una o varias tablas de multiplicar es algo fácil, por ejemplo, vamos a crear las primeras 10 tablas de multiplicar, para ello, ponemos la función, como argumento filas, ponemos 10, como argumento columnas, ponemos 10, ponemos LAMBDA, declaramos dos variables, y, multiplicamos ambas variables.
=ARCHIVOMAKEARRAY(10;10;LAMBDA(a;b;a*b))
Aceptamos, y, ya las tenemos.

Si queremos una tabla en especial, por ejemplo, la tabla del siete, después del signo igual, usamos LET, creamos una variable, almacenamos la expresión anterior.
=LET(a;ARCHIVOMAKEARRAY(10;10;LAMBDA(a;b;a*b))
Punto y coma, usamos la función FILTRAR, como argumento array es la variable.
=LET(a;ARCHIVOMAKEARRAY(10;10;LAMBDA(a;b;a*b));FILTRAR(a
Punto y coma, como argumento include, usamos INDICE, donde nos vamos a traer las filas de la primera columna, para ello, como argumento array, es la variable que hemos creado, como argumento número defila, usamos SECUENCIA, como argumento filas, ponemos 10, como argumento número de columna, ponemos 1, cerramos paréntesis de INDICE, lo igualamos a 7, cerramos paréntesis de FILTRAR y de LET.
=LET(a;ARCHIVOMAKEARRAY(10;10;LAMBDA(a;b;a*b));FILTRAR(a;INDICE(a;SECUENCIA(10);1)=7))
Aceptamos, y, tenemos la tabla del 7.
Vamos a cambiar el argumento filas de ARCHIVOMAKEARRAY a 100, el argumento filas de SECUENCIA, también, lo cambiamos a 100.
=LET(a;ARCHIVOMAKEARRAY(100;10;LAMBDA(a;b;a*b));FILTRAR(a;INDICE(a;SECUENCIA(100);1)=7))
En la celda B1, vamos a poner el numero de tabla a multiplicar.
Sustituimos el numero 7 después de INDICE por la celda B1.
Si ponemos un numero en la celda B1, tendremos la tabla, pero, que ocurre si ponemos, por ejemplo, el número 1000.
Pues tenemos un error de cálculo, para solventarlo, vamos a la función FILTRAR, y, en el argumento si vacío, ponemos la siguiente frase:
=LET(a;ARCHIVOMAKEARRAY(100;10;LAMBDA(a;b;a*b));FILTRAR(a;INDICE(a;SECUENCIA(100);1)=B1;"Esciba un numero del 1 al 100"))
Aceptamos, y, como he puesto el número 1000, vemos dicho texto.
Pero, queremos una mejor presentación, para ello, en una celda, volvemos a poner la función, como argumento filas, ponemos 10, como argumento columna, ponemos 1.
=ARCHIVOMAKEARRAY(10;1
Punto y coma, ponemos LAMBDA, declaramos dos variables, como argumento calculo de LAMBDA, seleccionamos la celda B1 que es la tabla para seleccionar, concatenamos con un espacio, signo de asterisco, y, otro espacio, volvemos a concatenar con la primera variable de ARCHIVOMAKEARRAY.
Cerramos paréntesis.
=ARCHIVOMAKEARRAY(10;1;LAMBDA(a;b;B1&" * "&a))
Aceptamos, y, tenemos los cálculos a realizar.

Volvemos a la expresión, concatenamos con un espacio, el signo igual, y, otro espacio en blanco.
=ARCHIVOMAKEARRAY(10;1;LAMBDA(a;b;B1&" * "&a))&" = "
Transponemos la primera expresión, la copiamos, volvemos a la expresión anterior, y, ponemos el símbolo de concatenar, y, pegamos la expresión.
=ARCHIVOMAKEARRAY(10;1;LAMBDA(a;b;B1&" * "&a))&" = "&TRANSPONER(LET(a;ARCHIVOMAKEARRAY(100;10;LAMBDA(a;b;a*b));FILTRAR(a;INDICE(a;SECUENCIA(100);1)=B1;"Esciba un numero del 1 al 100")))
Aceptamos, y, ahora tiene una mejor vista.

Miguel Angel Franco




Comentarios