Comment générer une chaîne aléatoire à partir d'un ensemble de chaînes disponibles dans Excel?

7

Je veux générer une colonne qui aura des valeurs de chaîne aléatoires dans n'importe quel ordre. Ces valeurs de chaîne doivent être des chaînes ("Nouveau", "Monnaie", "Très bien", "Bon", "Acceptable", "Mauvais")? Quelqu'un peut-il me dire comment utiliser une RANDBETWEENfonction pour remplir mes colonnes avec les données mentionnées entre parenthèses?

Ashutosh
la source
Pouvez-vous répéter ces chaînes ou peuvent-elles apparaître une seule fois?
Andi Mohr
Je dois répéter ces cordes
Ashutosh

Réponses:

12

Si vous n'avez que quelques chaînes

Si vos chaînes sont dans la première colonne, vous pouvez utiliser la CHOOSE()fonction comme ceci:

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

RANDBETWEEN(1,6)choisira au hasard un nombre n compris entre 1 et 6 - CHOOSEpuis comptera parmi tous les paramètres que vous avez énumérés (vos chaînes dans la colonne A) et affichera le nième terme.

entrez la description de l'image ici

Mais si vous avez beaucoup de chaînes

Si vous avez plus que quelques éléments à CHOOSEpartir, le maintien de cette formule devient compliqué.

Dans ce cas, il est probablement préférable d’ insérer une table (appelons-la MyStrings ), de créer une colonne ID dans la colonne A en utilisant =ROW()-1et de basculer notre formule en a VLOOKUP. Nous pouvons utiliser MIN& MAXet des références structurées pour déterminer de manière dynamique le nombre de termes contenus dans votre tableau, à utiliser dans RANDBETWEEN:

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

entrez la description de l'image ici

Attention maintenant

RANDBETWEENest une fonction volatile, ce qui signifie qu'elle recalcule chaque fois qu'une autre cellule change (n'importe où dans votre classeur). Si vous devez conserver les chaînes générées de manière aléatoire comme elles sont une fois que vous les avez produites, vous devez copier et coller les valeurs spéciales en tant que valeurs .

Si vous utilisez beaucoup de fonctions volatiles, cela peut ralentir votre travail, mais vous pouvez faire quelque chose pour y remédier .

Andi Mohr
la source
9

Vous pouvez utiliser INDEXavec RANDBETWEENpour faire cela.

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

Il suffit de remplir cette formule dans votre colonne.

Excellent
la source
1
est-ce volatile?
Raystafarian
@Raystafarian oui, à cause de RANDBETWEENla valeur changera chaque fois que la feuille est calculée.
Excellll
Je pensais que oui, mais personne n'en a parlé à l'OP.
Raystafarian
Bon point. Je vais éditer mon post pour faire valoir ce point également.
Andi Mohr