top of page

Grupos por tamaño contenedor

Tenemos una serie de máquinas, y, un tamaño para cada máquina.










¿Qué significa el tamaño del contenedor?


Un contenedor empieza en 1, y, acaba en 10, debemos de crear grupos, ¿grupos de cuantos?, eso lo indica el tamaño del contenedor, por ejemplo, el primer contenedor tiene un tamaño de 5, todo contenedor empieza por la letra “B”, como el tamaño es de 5, y, debe de llegar a 10, pues, el primer grupo empieza en B1 hasta B5, y, el segundo contenedor, empieza en B6 y acaba en B10.


En la celda F2, usamos LET, creamos una variable, dividimos el valor de 10 entre el valor de B2.


=10/B2


Obtenemos 2.


Usamos REDONDEAR.MAS, como argumento numero es la división, como argumento número de decimales, ponemos 0.


=REDONDEAR.MAS(10/B2;0)


Seguimos obteniendo 2, quiere decir que para M1 debemos de crear dos grupos.


Si arrastramos, veremos los grupos que debemos de crear para cada máquina.


Volvemos a la expresión, usamos SECUENCIA, como argumento filas, es la expresión anterior, como argumento columnas, ponemos la celda B2, pero, usamos LET, donde creamos una variable, y, almacenamos la funcion SECUENCIA.


=LET(a;SECUENCIA(REDONDEAR.MAS(10/B2;0);B2);a)


En este caso, tenemos una matriz desbordada de cinco columnas, y, dos filas.





Si cambiamos B2, por ejemplo, por B4, obtenemos una matriz desbordada de tres columnas, y, tres filas, llegando al número 12.






Pero, el contenedor como máximo debe de ser de 10, pues, creamos otra variable, usamos el condicional SI, como argumento prueba lógica, preguntamos si la variable “a”, es mayor a 10, en ese caso, que devuelva blanco, en caso contrario, que nos devuelva la variable “a”.


=LET(a;SECUENCIA(REDONDEAR.MAS(10/B4;0);B4);b;SI(a>10;"";a);b)


Ya tenemos el máximo.






Usamos el argumento calculo de LET, ponemos ENFILA, como argumento matriz, entre comillas dobles, ponemos B, concatenamos con la funcion TOMAR, como argumento matriz, ponemos la variable “b”, ignoramos el argumento filas, como argumento columnas, ponemos 1, vamos a obtener la letra “B” unido a los valores de la primera columna.


=LET(a;SECUENCIA(REDONDEAR.MAS(10/B4;0);B4);b;SI(a>10;"";a);ENFILA("B"&TOMAR(b;;1)))


Tenemos el inicio de cada grupo.




Volvemos a la expresión, concatenamos con un guion medio junto con la letra B, concatenamos con la funcion BYROW, para trabajar con cada fila de forma independiente, como argumento array ponemos la variable “b”, como argumento funcion ponemos LAMBDA, creamos una variable, usamos MAX, y, como argumento ponemos la variable “x”.


=LET(a;SECUENCIA(REDONDEAR.MAS(10/B4;0);B4);b;SI(a>10;"";a);ENFILA("B"&TOMAR(b;;1)&"-B"&BYROW(b;LAMBDA(x;MAX(x)))))


Cambiamos B4 por B2.


=LET(a;SECUENCIA(REDONDEAR.MAS(10/B2;0);B2);b;SI(a>10;"";a);ENFILA("B"&TOMAR(b;;1)&"-B"&BYROW(b;LAMBDA(x;MAX(x)))))


Aceptamos, arrastramos, y, ya lo tenemos.









Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page