Eclater une nomenclature multiniveaux (enfants avec multi-parents) Power BI

Accueil – Le CFO masqué Forums Power Query Eclater une nomenclature multiniveaux (enfants avec multi-parents) Power BI

  • Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par Daniel, le il y a 8 mois.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Articles
  • #132617
    cyprien.bourgois
    Participant

    Bonjour à tous,

    Pourriez-vous SVP m’aider à éclater une nomenclature multiniveaux en Power Query ou DAX ?

    Je préférerai utiliser Power Query sur Power BI mais je cherche depuis tellement longtemps que je peux me résoudre à utiliser Excel (Hors VBA) si besoin…

    Dans l’idée, j’ai une table qui ligne à ligne, me donne la qté d’un composant utilisé pour fabriquer mon article.

    Je souhaite générer une nomenclature multiniveau :

    Pour chaque article, je veux obtenir la liste de tous les composants et sous-composants ainsi que la qté nécessaire à la fabrication de mon article.

    J’ai essayé d’utiliser la fonction “PATH” en DAX, mais je suis coincé car j’ai des composants utilisés par plusieurs articles.

    J’ai aussi essayer d’utiliser le code disponible sur le site de The Biccountant : Bill of Materials (BOM) solution in Excel and PowerBI.

    Mais étant donné que j’ai plus de 8 000 lignes dans ma table initiale, le temps de calcul sous Power BI est beaucoup trop long…

    Je vous laisse ci-dessous un exemple de ce que je souhaiterai obtenir avec un extrait de ma table de nomenclature initiale.

    Je compte beaucoup sur votre aide et merci à vous par avance !

    Très cordialement,

    CB

    Attachments:
    You must be logged in to view attached files.
    #132640
    Daniel
    Participant

    Bonjour cyprien, le Forum,

    J’ai essayé de reproduire sur base de la nomenclature et des données fournies, j’arrive au résultat du tableau “Nomenclature de production multiniveaux”, à toi de vérifier si cela te semble correct et rapide par rapport à l’ensemble de ton jeu de données.
    Je pense que d’autres membres auront aussi des solutions à te proposer.

    Voici le code de ma requête (charger au préalable la table Nomenclature dans une requête)
    let
    Source = Excel.CurrentWorkbook(){[Name=”Qte_Tot”]}[Content],
    ModificationTypeDonnées = Table.TransformColumnTypes(Source,{{“Article”, Int64.Type}, {“Qté totale”, Int64.Type}}),
    AjoutTblNomenclature =
    let
    Step1 = Table.AddColumn(ModificationTypeDonnées, “TblNomenclature”, each Nomenclature),
    Step2 = Table.AddColumn(Step1, “tblNomenclature”, each let Article = [Article] in Table.SelectRows(Nomenclature, each [Article] = Article)),
    Step3 = Table.ColumnNames(Table.Combine(Step2[tblNomenclature])),
    Step4 = Table.SelectColumns(Step2,{“Article”,”Qté totale”,”tblNomenclature”})
    in Step4,
    DeveloppementTblNomenclature = Table.ExpandTableColumn(AjoutTblNomenclature, “tblNomenclature”, {“Composant”, “Quantity”}, {“Composant”, “Quantity”}),
    AjoutQteFinale = Table.AddColumn(DeveloppementTblNomenclature, “Qté finale”, each [Qté totale]*[Quantity]),
    PermutationColonnes = Table.ReorderColumns(AjoutQteFinale,{“Article”, “Composant”, “Qté finale”, “Qté totale”, “Quantity”})
    in
    PermutationColonnes

    fin du code de la requête
    Cordialement

    #132804
    cyprien.bourgois
    Participant

    Bonjour Daniel,

    Merci pour ta réponse !

    J’ai essayé ta requête mais je ne pense pas m’y être pris de la bonne manière…
    Peux-tu STP me partager ton fichier pour que je comprenne mieux ?

    Dans mon jeu de données initial, je n’ai que la table “Nomenclature” de la feuille “Table de nomenclature” et la table “Besoin” de la feuille “Exemple de résultat”.

    En gros, j’ai les besoins de mes produits finis et je cherche combien de composants/sous-composants/produits semi-finis je vais avoir besoin d’acheter et/ou fabriquer…

    PS : J’ai mis en PJ le fichier avec ta requête que j’ai tenter de reproduire !

    Merci encore pour ta précieuse aide !
    A très bientôt,

    Cordialement,
    CB

    Attachments:
    You must be logged in to view attached files.
    #132827
    Daniel
    Participant

    Bonjour cyprien, le Forum,

    Cela fonctionne, la table Nomenclature doit avoir le même type de données (Article) que la table des Besoins. Comme les articles étaient numériques, le type de données était entier dans la table des Besoins et dans la table Nomenclature était en type Text. Il a donc suffit de les mettre au même type (j’ai choisi Entier pour les deux tables) et cela donne le résultat attendu.
    Je met en pièce jointe ton fichier avec le résultat.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.