MS Excel: aleatorizar columnas de cadenas en una cuadrícula de cadenas

MS Excel: aleatorizar columnas de cadenas en una cuadrícula de cadenas

Tengo una hoja de MS Excel con 100 nombres en una sola columna.

En otra hoja, tengo una cuadrícula de celdas de 10 x 10 a la que quiero asignar aleatoriamente un nombre de la columna.

¿Existe una manera relativamente fácil de lograr esto o implicará un trabajo de tipo VBA?

Respuesta1

Se puede hacer con una columna auxiliar que crea un número de orden aleatorio del 1 al 100. Con sus nombres en A2:A101. En B2 poner:

=AGGREGATE(15,7,ROW($1:$100)/(COUNTIFS($B$1:B1,ROW($1:$100))=0),RANDBETWEEN(1,100-COUNT($B$1:B1)))

Y cópielo.

Esto seleccionará aleatoriamente un número entre 1 y 100 con la k, en AGREGADO RANDBETWEEN(1,100-COUNT($B$1:B1)). Mientras que COUNTIFS($B$1:B1,ROW($1:$100))=0se asegura de que no obtengamos duplicados.

ingrese la descripción de la imagen aquí

Luego usamos INDEX/MATCH para encontrar el valor. Pon esto en la esquina superior derecha de la cuadrícula:

=INDEX($A:$A,MATCH((ROW($A1)-1)*10+COLUMN(A$1),$B:$B,0))

Como es una droga de arriba a abajo, busca 1-10 en la primera fila y 11-20 en la segunda y así sucesivamente. Y dado que la columna de búsqueda es aleatoria, será aleatoria.

Luego copia sobre 10 y hacia abajo 10:

ingrese la descripción de la imagen aquí


Si uno tiene Office 365 Excel, entonces INDEX/MATCH se puede reemplazar con esta versión dinámica que derramará el 10x10 automáticamente:

=INDEX(A:A,MATCH(SEQUENCE(10,10),B:B,0))

Respuesta2

Suponiendo que los nombres están almacenados en la columna A:

  1. En la columna B, aplique la fórmula=RAND()
  2. Copie y pegue los valores resultantes en la columna B, sobrescribiendo la fórmula
  3. En la columna C, aplique la fórmula =RANK(B2, $B$2:$B$101). Esto le permitirá asignar un número del 1 al 100 a cada nombre.
  4. Encima de su cuadrícula de 10x10, agregue los números del 1 al 10. Haz lo mismo a la izquierda de tu cuadrícula de 10x10. Estos servirán como encabezados de filas y columnas.

Ahora, asumiendo que los encabezados de las filas están en E2:E11y los encabezados de las columnas están en F1:O1...

  1. Ingrese la fórmula =INDEX($A$2:$A$101, MATCH(($E2-1)*10+F$1, $C$2:$C$101,0))en la celda F2 y arrástrela a lo largo de una cuadrícula de 10x10

Solución de ejemplo

Respuesta3

Pruebe esta fórmula matricial y termine conMayús+Ctrl+Entrar:

=INDEX($A$1:$A$10,RANDBETWEEN(1,COUNTA($A$1:$A$10)))

ingrese la descripción de la imagen aquí

información relacionada