Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
flochi75
Creator III
Creator III

tirage au sort

Bonjour,

est-il possible de faire un tirage au sort, sur un nombre variable de dossiers (20, 40, 100) et ce, sans doublon ?

Merci

Florent

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Salut,

  • créer une variable vNbValeur initialisée à 20
  • créer une variable vSolution initialisée à 1
  • Aller dans propriétés de document --> Variables
    • Sélectionner vNbValeur
    • Sélectionner Standard  --> Entier   comme Contrainte de saisie
    • Sélectionner Valeurs prédéfinies avec défilement dans Liste de valeurs
    • Saisir 20;40;100 dans Valeurs listées de Valeurs prédéfinies
    • OK
  • créer un tableau simple avec en dimension la ou les valeur à extraire
    • ajouter en première position l'expression :  Rand() * vSolution
    • dans l'onglet Limites dimensionnelles , afficher uniquement maximum vNbValeur
    • supprimer l'affichage des Autres dans Options
  • créer une Zone de saisie avec la variable vNbValeur
  • créer un bouton Tirage qui va incrémenter de 1 la variable vSolution

Et voilà :

  • tu peux facilement choisir le nombre de valeur à extraire
  • tu peux changer le tirage

View solution in original post

10 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Je ne comprends pas ce que tu veux exactement.

Peux donner un exemple ou une explication plus complète

flochi75
Creator III
Creator III
Author

oui bien sûr,

on me demande régulièrement de sortir par tirage au sort,  une liste de séjours pour études de ceux ci.

jusqu'à maintenant, je sort l'intégralité des séjours sur la période concernée en fichier excel, puis je lance une manip dans celui ci pour en extraire le nombre souhaité (qui n'est pas toujours le même en fonction des demande).

le pb c'est que cette manip (un fichier que j'ai trouvé sur le net) me génère des doublons, donc j'en tire plus au sort, et je supprime les doublons, et je réduit la liste au nb souhaité.

pour éviter tout cela, j'aurai voulu savoir s'il était possible de sortir un nb de dossiers, aléatoirement, directement via qlikview, sans doublon.

Florent

brunobertels
Master
Master

Bonjour

Il me semble que j'avais lu dans l'aide une fonction servant à çà et j'ai trouvé çà :

çà pourra peut être t'aider.

En tapant Rand dans la recherche j'ai trouvé des post que tu pourras adapter à ton besoin

Closedrand

La fonction renvoie un nombre aléatoire compris entre 0 et 1. Elle peut servir à créer des échantillons de données.

rand( )

Exemple :

Cet exemple de script crée une table de 1 000 enregistrements contenant des caractères en majuscules sélectionnés de manière aléatoire, c'est-à-dire des caractères compris dans la plage 65 à 91 (65+26).

Load Chr( Floor(rand() * 26) + 65) as UCaseChar, RecNo() as ID Autogenerate 1000;

brunobertels
Master
Master

Bonjour

Regarde avec la fonction rand()

flochi75
Creator III
Creator III
Author

bonjour Bruno,

merci pour ta réponse, je vais creuser de mon côté sur le sujet le rand()

mais l'idée serait de le faire en prod, pas en script, pour pouvoir y joindre une variable pour le nb attendu de résultats

en excel; pour 1 résultat, c'est ça :

=INDEX(ListeAgents;ENT(ALEA()*ENT(NBVAL(ListeAgents)));1)

c'est cette correspondance que je cherche...

Florent

brunobertels
Master
Master

Bonjour

OK , si je saisi bien la formule excel pour ton cas je ne vois pas comment la transcrire sous qlik désolé.  Mais si je te suis bien tu veux pourvoir permettre à l'utilisateur de choisir ( variable) un nombre X de dossier à sortir d'une liste de séjour.

Encore une fois en tapant rand dans la recherche j'ai lu des post en anglais qui le font.

Peut être une autre piste avec l’instruction sample()

https://community.qlik.com/message/1145015#1145015

flochi75
Creator III
Creator III
Author

oui, c'est tout à fait ça.

sfatoux72
Partner - Specialist
Partner - Specialist

Salut,

  • créer une variable vNbValeur initialisée à 20
  • créer une variable vSolution initialisée à 1
  • Aller dans propriétés de document --> Variables
    • Sélectionner vNbValeur
    • Sélectionner Standard  --> Entier   comme Contrainte de saisie
    • Sélectionner Valeurs prédéfinies avec défilement dans Liste de valeurs
    • Saisir 20;40;100 dans Valeurs listées de Valeurs prédéfinies
    • OK
  • créer un tableau simple avec en dimension la ou les valeur à extraire
    • ajouter en première position l'expression :  Rand() * vSolution
    • dans l'onglet Limites dimensionnelles , afficher uniquement maximum vNbValeur
    • supprimer l'affichage des Autres dans Options
  • créer une Zone de saisie avec la variable vNbValeur
  • créer un bouton Tirage qui va incrémenter de 1 la variable vSolution

Et voilà :

  • tu peux facilement choisir le nombre de valeur à extraire
  • tu peux changer le tirage
flochi75
Creator III
Creator III
Author

Merci Sébastien,

ça semble marcher.

je n'arrive juste pas à faire fonctionner le bouton... quelle action choisir ?

j'ai essayé "bouton de sélection", champ : =vSolution, =vSolution+1...

mais ça, ça ne marche pas...

en biaisant, on peut changer le vNbValeur, mais quand on remet la valeur souhaitée, ce sont exactement les mêmes dossier qui sont sélectionnés  (parx ex, à achaque fois que je choisi "1", c'es le N° 7772872 qui sort...