Fonction Index avec un Aléatoire mais sans risque de doublon

Bien le Bonjour tout le monde ^^

Il s'avère que je suis en train de créer un petit Google Sheet en recopiant un EXCEL que j'ai fait, dans le but de créer un fichier pour organiser des partie de Petit Bac durant mes vacances mmais de manières semi-automatisé.

J'aurais besoin de votre aide pour :
modifié ma fonction présente de I2 a I11
Ma fonction actuelle est la suivante :
=INDEX(Catégories;ALEA.ENTRE.BORNES(1;LIGNES((Catégories))))
(Catégories étant le nom des cellules allant de B2 à B42)

Cette dernière me permet de choisir aléatoirement parmi les "catégories" une de ces catégories pour l'afficher dans la case tel quel, afin que l'on ai des catégories tirées au sort.
Le problème auquel je fais face c'est que par moment l'aléatoire ne faisant pas assez bien les choses =p je me retrouve avec des doublons dans mes catégories.

J'aimerais savoir si il serait possible que mes catégories se "checkent entre elles" pour qu'il n'y pas de doublon...
Pour cela j'avais penser à une hypothèse... Serait-ce possible de faire en sorte que I3 s'assure de ne pas avoir le même texte que I2... Ainsi I3 se relancerais et me donnerais une nouvelle catégorie. Pour I4 il faudrait qu'elle se fie a I2 et I3... et Ainsi de suite...
Donc bien que je ne sache pas la formule je me suis dit qu'en mettant des fonctions SI je pourrais obtenir ce que je veux, mais la successions de SI ne fait jamais bon ménage...

Auriez-vous des suggestions ? Solutions ?

Merci de votre aide.

4petit-bac.xlsx (17.43 Ko)

Bonjour,

Google Sheets ou Excel ?

Google sheets de Préférence ^^ Mais si la fonction fonctionne uniquement sur Excel je m'en contenterais ^^'

J'ai partagé un Fichier Excel car je ne peux pas partager le google sheet en fichier sans que cela ne modifie le document initial ^^

J'ai trouvé cette fonction pour un Tirage au sort aléatoire sans remise...

Si quelqu'un pouvait me l'expliquer... cela serait peut-être la solution à mon problème...

3tirage.xlsx (9.27 Ko)

J'ai trouvé ma solution ^^ pour faire mon Tirage Aléatoire sans doublon
Cela grâce au fonction dans le document "Tirage.xlsx"

Mes Catégorie sont dorénavant de A2 à A42.
J'ajoute de B2 a B42 une fonction =ALEA() qui me permet d'obtenir une valeur entre 0 et 1 avec plein de décimales.
De C2 à C42 j'ai mis la fonction =RANG(B2:B42;B2:B42), Cette fonction va classer par ordre décroissant les valeurs de mes fonctions =ALEA() en mettant dans les cases C2 à C42, 1.2.3.4 [...]
Ensuite j'ai mis dans les cellules D2/D42 la fonction =TRIERPAR(Catégorie;C2#;1), Ainsi Dans les cellules D2 à D42 j'obtiens la donnée Textuelle que j'ai de ma catégorie par ordre décroissant.

Et du coup J'obtiens a chaque fois le TOP10 catégories distinctes selon leurs =ALEA()

NON, cette solution n'est pas sans doublon. Le risque est faible mais existe.

Fonction strictement sans doublon

=ALEA.ENTRE.BORNES(1;10^ARRONDI.SUP(LOG(NBVAL(A:A));0))+LIGNE()/(10^ARRONDI.SUP(LOG(NBVAL(A:A));0))

et ensuite

=INDEX(A:A;RANG(B1;B:B))
7tirage.xlsx (8.73 Ko)
est-ce que tu souhaites une solution GSheets ?

si si elle est doublon,
Je m'explique, Dans le rare cas ou la fonction =ALEA() donnerait un Nombre IDENTIQUE a côté de 2 catégories (Par exemple : Insectes, Fruits).
Alors la fonction =Rang() afficherai le même rang aux deux =ALEA(),
Dans le cas ou en plus d'être identique, le rang associés serait inclus dans le top 10 des rang s
La fonction =TRIPAR() serait donc obligé d'afficher les 2 catégories distinctes les une à la suite de l'autre alphabétiquement parlant car elles ont les mêmes valeurs de tri.

Sauf que tu coup sur le Tableau qui me renvoi mon top10, je vais bien avoir affiché 10 Catégories différentes car bien que les =ALEA() soit Identiques, la fonction Tripar m'affichera les deux...

Merci de ton aide en tout cas ^^

Exemple :
Légumes et Jeux de Société ont le même Alea, et Donc le même Rang mais comme le tri m'affiche la catégorie lié au rang et non l'aléa, il m'affiche bien les catégorie Trier une seule et unique fois. et donc après j'ai dans un tableau a côté la récupération des 10 premiers uniquement

CatAleaRangTripar
Aliments0,16648284918Jeux de Société
Anatomie0,75946612510Légumes (sauf S.Hawkins)
Animaux Marin0,01895708119Métiers
Animaux Terrestre0,773696438Fleurs
Animaux Volatile0,71332884111Instru. de Musique
Collectionnables0,27364944117États des USA
Couleurs & Motifs0,61504746112Insectes
Éléments de S.Valley0,46582200115Animaux Terrestre
États des USA0,7806644776Jeux Vidéo
Fleurs0,8454107574Anatomie
Fruits0,30066263416Animaux Volatile
Insectes0,7773611297Couleurs & Motifs
Instru. de Musique0,7981952065Matières
Jeux de Société0,9947564971Marques
Jeux Vidéo0,7724475659Éléments de S.Valley
Légumes (sauf S.Hawkins)0,9947564971Fruits
Marques0,47380146114Collectionnables
Matières0,48786358913Aliments
Métiers0,9472631123Animaux Marin

Sauf que tu coup sur le Tableau qui me renvoi mon top10, je vais bien avoir affiché 10 Catégories différentes car bien que les =ALEA() soit Identiques, la fonction Tripar m'affichera les deux...

Merci de ton aide en tout cas ^^

tu as raison, mon propos était par rapport au fichier posté et par rapport au titre; et tu n'avais pas mentionné le top ten

bonne continuation

Google sheets de Préférence ^^

voici une fonction GSheets qui te donnera une liste triée aléatoirement ...

=query(sort(A1:A;arrayFormula(randbetween(row(A1:A);COUNTA(A1:A)));true);"select * where Col1 is not null")

Merci la fonction marche bien en effet ^^ pas forcément plus simple que ma méthode mais au moins en 1 fonction c'est réglé ^^. Beau travail en tout cas =p Merci encore

Personnellement j'ai réussi a refaire un peu le principe que j'avais réalisé sur mon Excel avec la fonction tri-part en modifiant 2/3 fonction et en ajoutant une fonction SORTN et jusqu'à maintenant est j'ai du faire plus d'une centaine de test pour voir si la fonction ne cassé rien au long terme et j'ia pas eu un seul doublon

donc plutôt content de moi \o/

Rechercher des sujets similaires à "fonction index aleatoire risque doublon"