Accueil – Le CFO masqué › Forums › Power Query › Number.Random() Excel Alea()
Étiqueté : Nombre Aléatoire
- Ce sujet contient 4 réponses, 2 participants et a été mis à jour pour la dernière fois par
philippe.muniesa, le il y a 4 années et 4 mois.
-
AuteurMessages
-
29 octobre 2020 à 12 h 59 min #83114
philippe.muniesa
ParticipantBonjour,
J’essaie d’utiliser Number.Random() dans une colonne personnalisée de la table.
Comme indiqué sur plusieurs sites traitant du sujet, j’ai préalablement à la création de la colonne Number.Random() créé une colonne d’index,
D’après ce que je vois, le tri de la table dans power Query sur cette colonne ne semble pas non plus fonctionner ????, ou ne tri que la colonne ???
si comme indiqué sur plusieurs sites, je supprime la colonne index une fois le tirage aléatoire réalisé. et que je tri la table sur cette colonne Number.Random() , alors toutes les lignes de la colonne prennent la même valeur.
Quelque soit la situation, lorsque je tranfers la table dans excel, toutes les cellules de la colonne Number.Random() ont la même valeur ????
Je peux cette insérer une colonne Alea() dans Excel et figer les valeurs, mais ç’est moins propre.
Y a t il quelque chose que j’ai mal fait ou que j’ai loupé.
Merci
Philippe
1 novembre 2020 à 12 h 56 min #83292Stéphane Lorin
ParticipantBonjour
En effet, je reproduis le même problème.
Vous pouvez le contourner en utilisant la fonction Table.UnpivotOtherColumns pour dépivoter la colonne avec l’aléa.
Cela fige la valeur et permet ensuite le tri.Stéphane
Code pour trier 10 valeurs aléatoires
let
Source = {1..10},
#”Converti en table” = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#”Personnalisée ajoutée” = Table.AddColumn(#”Converti en table”, “Personnalisé”, each Number.Random()),
#”Supprimer le tableau croisé dynamique des autres colonnes” = Table.UnpivotOtherColumns(#”Personnalisée ajoutée”, {“Personnalisé”}, “Attribut”, “Valeur”),
#”Lignes triées” = Table.Sort(#”Supprimer le tableau croisé dynamique des autres colonnes”,{{“Personnalisé”, Order.Ascending}})
in
#”Lignes triées”1 novembre 2020 à 13 h 33 min #83293Stéphane Lorin
ParticipantEn complément pour obtenir une liste de 10 valeurs aléatoires triées par ordre croissant vous pouvez utiliser la fonction List.Random à la place de Number.Random :
= List.Sort(List.Random(10),Order.Ascending)
Stéphane
9 novembre 2020 à 13 h 58 min #83615philippe.muniesa
ParticipantStéphane;
Merci pour cette réponse que je consulte tardivement (j’étais sur mon projet sur d’autres problèmes 🙂 ),
Cependant, je ne vois pas bien la différence avec une colonne normale ni pourquoi PowerQuery ne donne pas le résultat escompté avec l’usage de cette formule.
Je continue à cherche une solution
cordialement
Philippe
10 novembre 2020 à 4 h 51 min #83672philippe.muniesa
ParticipantStéphane,
J’ai fini par trouver une solution (batarde, mais qui me convient).
je récupère ma table d’origine dans Excel, puis je rajoute une colonne Alea avec la fonction Alea(). Puis je sauvegarde le fichier Excel
Ensuite, les différents traitements sont réalisés à partir de la récupération dans PQ de cette table EXCEL.
J’aurais aimé tout faire dans PQ mais c’est plus compliqué et moins efficace.
Cordialement
PH MUNIESA
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.