¿Cómo generar una cadena aleatoria a partir de un conjunto de cadenas disponibles en Excel?

7

Quiero generar una columna que tendrá valores de cadena aleatorios en cualquier orden. ¿Esos valores de cadena deben ser de cadenas ('Nuevo', 'Menta', 'Muy bueno', 'Bueno', 'Aceptable', 'Pobre')? ¿Alguien puede decirme cómo puedo usar la RANDBETWEENfunción para completar mis columnas con los datos mencionados entre paréntesis?

Ashutosh
fuente
¿Puedes repetir esas cadenas o solo pueden aparecer una vez?
Andi Mohr
Tengo que repetir esas cadenas
Ashutosh

Respuestas:

12

Si solo tienes unas pocas cuerdas

Si sus cadenas están en la primera columna, puede usar la CHOOSE()función de esta manera:

=CHOOSE(RANDBETWEEN(1,6),$A$1,$A$2,$A$3,$A$4,$A$5,$A$6)

RANDBETWEEN(1,6)elegirá aleatoriamente un número n del 1 al 6, CHOOSEluego contará todos los parámetros que ha enumerado (sus cadenas en la columna A) y mostrará el enésimo término.

ingrese la descripción de la imagen aquí

Pero si tienes muchas cuerdas

Si tiene más de unos pocos elementos CHOOSE, mantener esta fórmula se vuelve difícil de manejar.

En cuyo caso, probablemente sea una buena idea insertar una tabla (llamémosla MyStrings ), cree una columna de ID en la columna A usando =ROW()-1y cambie nuestra fórmula a a VLOOKUP. Podemos usar MIN& MAXy referencias estructuradas para calcular dinámicamente cuántos términos hay en su tabla, para usar en RANDBETWEEN:

=VLOOKUP(RANDBETWEEN(MIN(MyStrings[ID]),MAX(MyStrings[ID])),MyStrings,2,0)

ingrese la descripción de la imagen aquí

Cuidado ahora

RANDBETWEENes una función volátil, lo que significa que recalcula cada vez que cambia cualquier otra celda (en cualquier lugar de su libro). Si necesita mantener las cadenas generadas aleatoriamente como están una vez que las ha producido, deberá copiar y pegar valores especiales .

Si usa muchas funciones volátiles, puede ralentizar su libro de trabajo, pero hay cosas que puede hacer para aliviar esto .

Andi Mohr
fuente
9

Puede usar INDEXjunto con RANDBETWEENpara hacer esto.

=INDEX({"New","Mint","Very Good","Good","Acceptable","Poor"},RANDBETWEEN(1,6))

Simplemente complete esta fórmula en su columna.

Excellll
fuente
1
¿Es esto volátil?
Raystafarian
@Raystafarian sí, porque RANDBETWEENel valor cambiará cada vez que se calcule la hoja.
Excellll
Pensé que sí, pero nadie lo mencionó al OP.
Raystafarian
Buen punto. Editaré mi publicación para hacer ese punto también.
Andi Mohr