Rellenar cuadrícula de 10x8
- Jaime Franco Jimenez

- 17 oct 2023
- 1 Min. de lectura
Debemos de rellenar una cuadrícula de 10x8 con números que salten la X secuencialmente.

En la celda L2, ponemos la funcion SCAN, como argumento valor inicial, ponemos 0, como argumento array, seleccionamos el rango A2:J9.
=SCAN(0;A2:J9
Como argumento funcion, ponemos LAMBDA, creamos dos variables.
=SCAN(0;A2:J9;LAMBDA(x;y
Como argumento calculo de LAMBDA, usamos el condicional SI, como argumento prueba lógica preguntamos si la variable “y” es igual a “X”, en ese caso, que nos devuelva la variable “x”, en caso contrario, que devuelva la variable “x” + 1.
=SCAN(0;A2:J9;LAMBDA(x;y;SI(y="X";x;x+1)))
Obtenemos una matriz desbordada de 10 por 8, donde vemos que donde había “X” el valor se repite.

Pero, veamos de donde salen estos resultados.
Cuando ejecutamos la expresión, valor inicial vale 0, y, el argumento array, vale el primer valor de la matriz A2:J9, que es blanco.

Preguntamos si la variable “y” es igual a “X”, en este caso, no lo es, entonces, suma 1 a la variable “x”.

Ahora, valor inicial vale 1.

Volvemos a preguntar si la variable “y” es igual a “X”, tampoco lo es, entonces, suma 1 a la variable “x” (Valor inicial).

Valor inicial vale 2, volvemos a preguntar, y, tampoco lo es, por lo que suma 1 a la variable “x” (valor inicial).
Lo mismo para el siguiente valor.

La siguiente celda contiene “X”.

Entonces nos tiene que devolver el valor de “x”, que es 4, por eso, se repite el valor.

Así con el resto de los valores.
Después del signo igual, ponemos el condicional SI, como argumento prueba lógica, preguntamos si el rango A2:J9 es igual a “X”, en ese caso, que nos devuelva “X”, en caso contrario, que nos devuelva la funcion SCAN.
=SI(A2:J9="X";"X";SCAN(0;A2:J9;LAMBDA(x;y;SI(y="X";x;x+1))))
Aceptamos, y, ya lo tenemos.

Miguel Angel Franco




Comentarios