XL 2016 Question aléatoire sans doublon

Lulay

XLDnaute Nouveau
Bonjour,

J'essaie de créer un Questionnaire. Il y a 20 questions mais les personnes ne doivent répondre qu'à 10 questions parmi les 20.
J'ai créé ce fichier mais malheureusement, j'ai des questions qui se répète.
Est-ce quelqu'un peut m'aider ?
J'ai essayé la fonction UNIQUE qui pourrait me sortir 20 chiffres et ensuite ajouté aléa.entre.bornes pour que les chiffres soient distribués aléatoirement mais ça ne fonctionne pas. J'ai des questions qui se répètent.
J'aimerais y arriver sans vba.

Merci à l'avance de votre aide. Je joins le fichier.

Lu
 

Pièces jointes

  • FQTest - Copie.xlsx
    17.8 KB · Affichages: 9

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Proposition avec PowerQuery. Pour tirer de nouvelles questions, clik-droit dans le tableau vert puis "Actualiser" ou cliquez sur le bouton "Actualiser tout" de l'onglet de ruban "Données"

PowerQuery:
let   
    Source = Excel.CurrentWorkbook(){[Name="Questions"]}[Content],
    Tirage = #table({"Tirage"},List.FirstN(List.Distinct(List.Transform({1..100}, each {Int64.From(Number.RandomBetween(0,19))})),10)),
    Questions = Table.TransformColumns(Tirage,{"Tirage", each Source{_}[Column1], type text })

in
    Questions

Voyez également les cellules "Question - nn" elle ne contiennent qu'un chiffre formaté par format personnalisé.
 

Pièces jointes

  • FQTest - Copie.xlsx
    23.9 KB · Affichages: 7

fronck

XLDnaute Junior
bonjour,

Proposition avec PowerQuery. Pour tirer de nouvelles questions, clik-droit dans le tableau vert puis "Actualiser" ou cliquez sur le bouton "Actualiser tout" de l'onglet de ruban "Données"

PowerQuery:
let  
    Source = Excel.CurrentWorkbook(){[Name="Questions"]}[Content],
    Tirage = #table({"Tirage"},List.FirstN(List.Distinct(List.Transform({1..100}, each {Int64.From(Number.RandomBetween(0,19))})),10)),
    Questions = Table.TransformColumns(Tirage,{"Tirage", each Source{_}[Column1], type text })

in
    Questions

Voyez également les cellules "Question - nn" elle ne contiennent qu'un chiffre formaté par format personnalisé.
Bonjour Hasco,
J'aimerais savoir comment tu as fait le tirage des 10 questions sur PQ.
Merci
1683471159768.png
 

fronck

XLDnaute Junior
Oui, il y a eut apparemment 3 icones qui ont été sélectionnés:
-Acceuil/combiner.
-Transformer/colonne texte et transf/colonne structurée.
Mais il y a jusqu'à 4 options aprés, qui elles ne sont pas sélectionnées (en rose).
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,
Je ne vois pas de quoi vous parlez.
#table({"Tirage"},List.FirstN(List.Distinct(List.Transform({1..100}, each {Int64.From(Number.RandomBetween(0,19))})),10))
C'est une étape écrite à la main en langage M, le langage de power query, vous trouverez la description de chaque fonction dans la documentation microsoft :
la description du constructeur #table est en bas de la liste des fonctions de table.

Sinon ci-dessous, une version commentée mais je ne sais si c'est ce que vous voulez
VB:
let   
    // Récupération des 20 questions
    Source = Excel.CurrentWorkbook(){[Name="Questions"]}[Content],
    // Etablissement d'un tirage aléatoire de 10 nombre de 0 à 19
    Tirage = #table({"Tirage"},List.FirstN(List.Distinct(List.Transform({1..100}, each {Int64.From(Number.RandomBetween(0,19))})),10)),
    // Récupération des items de la source correspondants aux nombres tirés, par transformation des valeurs de la colonne.
    Questions = Table.TransformColumns(Tirage,{"Tirage", each Source{_}[Column1], type text })
in
    Questions
 

Hasco

XLDnaute Barbatruc
Repose en paix
Vous l'avez pas tapé à la main le langage, alors vous avez cliquez ou aprés ?
Si, au risque de vous décevoir, je l'ai tapé à la main. Affichage, Editeur avancé.
L'interface utilisateur ne propose que les choses les plus courantes.
Si vous voulez faire des choses avancées, il vous faut apprendre les subtilités du langage M et coder à la mimine.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 096
Membres
111 416
dernier inscrit
philipperoy83