Number.Random() Excel Alea()

Accueil – Le CFO masqué Forums Power Query Number.Random() Excel Alea()

Mots-clés : 

  • 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 3 années et 4 mois.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #83114
    philippe.muniesa
    Participant

    Bonjour,

    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

    #83292
    Stéphane Lorin
    Participant

    Bonjour

    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”

    #83293
    Stéphane Lorin
    Participant

    En 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

    #83615
    philippe.muniesa
    Participant

    Sté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

    #83672
    philippe.muniesa
    Participant

    Sté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

5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.