11 votes

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

Je veux générer une colonne qui contiendra des valeurs de chaîne aléatoires dans n'importe quel ordre. Ces valeurs doivent être issues de chaînes de caractères ('New', 'Mint', 'Very Good', 'Good', 'Acceptable', 'Poor'). Quelqu'un peut-il me dire comment je peux utiliser la fonction RANDBETWEEN pour remplir mes colonnes avec les données mentionnées entre parenthèses ?

16voto

Andi Mohr Points 4100

Si vous n'avez que quelques cordes

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

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

RANDBETWEEN(1,6) va choisir au hasard un numéro n de 1 à 6 - CHOOSE compte ensuite tous les paramètres que vous avez énumérés (vos chaînes de caractères dans la colonne A) et affiche le résultat de l'opération. nième terme.

enter image description here

Mais, si vous avez beaucoup de cordes

Si vous avez plus de quelques articles à CHOOSE à partir de, le maintien de cette formule devient lourd à gérer.

Dans ce cas, c'est probablement une bonne idée de insérer un tableau (appelons-le MyStrings ), créez une colonne ID dans la colonne A en utilisant =ROW()-1 et changer notre formule en une VLOOKUP . Nous pouvons utiliser MIN & MAX y références structurées pour déterminer de manière dynamique le nombre de termes contenus dans votre tableau, afin de l'utiliser dans la fonction RANDBETWEEN :

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

enter image description here

Attention maintenant

RANDBETWEEN est une fonction volatile, ce qui signifie qu'elle recalcule chaque fois qu'une autre cellule change (n'importe où dans votre classeur). Si vous avez besoin de conserver les chaînes générées de manière aléatoire telles quelles une fois que vous les avez produites, vous devrez copier et coller les chaînes dans le classeur. Collage spécial en tant que valeurs .

Si vous utilisez beaucoup de fonctions volatiles, cela peut ralentir votre worbook, mais Il y a des choses que vous pouvez faire pour atténuer ce problème. .

10voto

Excellll Points 12428

Vous pouvez utiliser INDEX en même temps que RANDBETWEEN pour le faire.

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

Il suffit de remplir cette formule dans votre colonne.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X