Distribución equitativa con LAMBDA, REDUCE y ALEATORIO

Hector plantea la necesidad de repartir un conjunto de líneas (tareas, actividades) entre varios grupos de forma equitativa y aleatoria. Idealmente, si hay 20 tareas y 3 grupos, cada grupo debería recibir un número similar de asignaciones.

Nacho comparte una fórmula LAMBDA reutilizable que acepta el número de líneas y el número de grupos como parámetros:

``
=LAMBDA(_lineas;_grupos;
LET(
_reps; REDONDEAR.MENOS(_lineas/_grupos;0);
_sobran; RESIDUO(_lineas;_grupos);
_lista; SECUENCIA(_grupos);
_listado; EXCLUIR(
REDUCE(_lista;
SECUENCIA(_reps);
LAMBDA(_a;_i;APILARV(_a;_lista))
);
-_sobran
);
_orden; BYROW(_listado;LAMBDA(_x;ALEATORIO()));
_output; ORDENARPOR(_listado;_orden);
_output
)
)(20;3)
`

La fórmula calcula cuántas repeticiones completas caben (REDONDEAR.MENOS) y cuántas sobran (RESIDUO). Luego genera la lista de grupos repetida con REDUCE + APILARV, recorta los elementos sobrantes con EXCLUIR negativo, y finalmente aleatoriza el orden con ORDENARPOR + ALEATORIO vía BYROW.

Un ejemplo elegante de cómo combinar LAMBDA como función reutilizable con REDUCE para construir listas de tamaño variable y ORDENARPOR` para aleatorizar resultados.

Más contenido de Excel en InflueXcel