Somme des lignes d'une matrice

Accueil – Le CFO masqué Forums Power BI Somme des lignes d'une matrice

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

    Bonjour,
    Mon rapport est composé de 7 tables.
    Une première table “Calendrier” composée de 6 colonnes :
    – “N° Jour” allant de 0 à 365
    – “Jour” = Today()+”N° Jour”
    – “Mois” = mois de la colonne “Jour”
    – “Trimestre” = trimestre de la colonne “Jour”
    – “Année” = année de la colonne “Jour”
    – “Semaine” = semaine de la colonne “Jour”

    Une seconde table “Liste_Composants” qui remonte tous les composants existants de ma base de données composé de 4 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “PMP” = Prix du composant
    – “QTE_STOCK” = Quantité en stock du composant
    – “VALO” = “QTE_STOCK”*”PMP” = valorisation du stock

    Une troisième table “Cmde_Composant” qui remonte toutes les commandes encours pour tous les composants composés de 5 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “DATE_LIV” = date de livraison de la commande
    – “QTE_CMDE” = quantité à recevoir
    – “PMP” = Prix du composant
    – “VALO” = “QTE_CMDE”*”PMP” = valorisation de la commande

    Une quatrième table “Cmde_Composant” qui remonte toutes les commandes encours pour tous les composants composés de 5 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “DATE_LIV” = date de livraison de la commande
    – “QTE_CMDE” = quantité à recevoir
    – “PMP” = Prix du composant
    – “VALO” = “QTE_CMDE”*”PMP” = valorisation de la commande

    Une cinquième table “besoin_Client” qui remonte tous les besoins de nos clients pour tous les composants composés de 5 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “DATE_LIV” = date de livraison demandée par le client
    – “QTE_CMDE” = quantité à livrer
    – “PMP” = Prix du composant
    – “VALO” = “QTE_CMDE”*”PMP” = valorisation de la commande

    Une sixième table “besoin_ferme” qui remonte tous les besoins pour une fabrication interne pour tous les composants composés de 5 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “DATE_LIV” = date du besoin ferme pour une fabrication interne
    – “QTE_BESOIN” = quantité du besoin interne
    – “PMP” = Prix du composant
    – “VALO” = “QTE_BESOIN”*”PMP” = valorisation du besoin

    Une septième table “besoin_previ” qui remonte tous les besoins pour une fabrication interne pour tous les composants composés de 5 colonnes :
    – “ID_COMPOSANT” = Code du composant
    – “DATE_LIV” = date du besoin prévisionnel pour une fabrication interne
    – “QTE_BESOIN” = quantité du besoin interne
    – “PMP” = Prix du composant
    – “VALO” = “QTE_BESOIN”*”PMP” = valorisation du besoin

    Les liens entres les tables sont les suivants :
    Les colonnes « DATE_LIV » sont toutes liées à la colonne « JOUR » de la table “Calendrier”.
    Les colonnes « ID_COMPOSANT » sont toutes liées à la colonne « ID_COMPOSANT » de la table “Liste_Composants”.

    J’ai créé deux mesures qui calculent le stock théorique et la valorisation du stock théorique en fonction des entrées (= le stock actuel + les commandes en cours) et des sorties (besoin de nos clients + besoins interne ferme + besoins interne prévisionnel) avec la subtilité que lorsque la valeur devient négative elle doit être égale à 0 :
    IF((CALCULATE(SUM(Liste_Composants[QTE_STOCK]))+CALCULATE(SUM(Cmde_Composant[QTE_CMDE]);filter(ALLSELECTED(Calendrier[Jour]);Calendrier[Jour]<=max(Calendrier[Jour]))))

    (CALCULATE(SUM(besoin_Client[QTE_BESOIN])+SUM(besoin_ferme[QTE_BESOIN])+SUM(besoin_previ[QTE_BESOIN]);filter(ALLSELECTED(Calendrier[Jour]);Calendrier[Jour]<=max(Calendrier[Jour]))))
    <0;0;
    (CALCULATE(SUM(Liste_Composants[QTE_STOCK]))+CALCULATE(SUM(Cmde_Composant[QTE_CMDE]);filter(ALLSELECTED(Calendrier[Jour]);Calendrier[Jour]<=max(Calendrier[Jour]))))

    (CALCULATE(SUM(besoin_Client[QTE_BESOIN])+SUM(besoin_ferme[QTE_BESOIN])+SUM(besoin_previ[QTE_BESOIN]);filter(ALLSELECTED(Calendrier[Jour]);Calendrier[Jour]<=max(Calendrier[Jour])))))

    Même formule pour la valorisation à part que j’utilise la colonne « VALO » au lieu des « QTE ».

    Cela fonctionne correctement lorsque j’affiche cette mesure dans une Matrice avec pour ligne « Liste_Composants[ID_COMPOSANT] » et en colonne « Calendrier[Semaine] ».

    Je souhaite maintenant faire la somme de toute les lignes de la matrice afin d’afficher la valeur totale dans un graphique.
    Si je prends la « mesure » en l’état que je l’affiche dans un graphique avec pour axe des abscisses les semaines la mesure ne fonctionne plus car elle ne fait pas le calcul pour chaque composant puis la somme de chaque ligne.
    Je n’arrive malheureusement pas à trouver la formule qui me permettrait de faire cette somme.

    Pourriez-vous m’aider s’il vous plait ?
    Je vous en remercie par avance.

    #61079
    Sophie Marchand
    Participant

    Bonjour,

    Merci de soumettre votre fichier ou un exemple réduit de votre problématique, par respect pour les personnes qui prendront le temps d’essayer de vous répondre sur ce forum, dont moi-même.

    Dans l’état actuel des choses, pour d’abord comprendre votre problématique et ensuite pouvoir y répondre, vous nous demandez de recréer de toutes pièces des données et un modèle de données.

    Personnellement, je veux vous aider mais je n’ai pas le temps de recréer toutes ces données. Mais si vous me fournissez un modèle de données à partir duquel travailler et mieux encore, une image du résultat recherché, ou une explication précise du résultat recherché (préciser un cas avec des valeurs), alors là, je prendrai le temps de vous aider avec grand plaisir.

    Merci de votre compréhension.

    Sophie

    #61080
    GuiMon
    Participant

    Bonjour Madame,
    J’ai joint mon rapport.
    Vous y trouverez deux onglet, un concernant les qtés et un autre concernant la valorisation.
    Les matrices (une dans chaque onglet) sont correctes et les graphiques ne sont pas bons. Ce que je cherche à faire, c’est afficher dans le graphique en dessous la somme de chaque ligne pour chaque semaine.
    Cependant, si j’utilise la même mesure dans le graphique pour afficher le total par semaine, je n’obtiens pas le même résultat que si je copie chaque ligne de ma matrice par semaine dans un excel que je refais la somme.
    Merci par avance pour votre aide.

    Attachments:
    You must be logged in to view attached files.
    #61082
    Sophie Marchand
    Participant

    Bonjour,

    Je ne comprends pas la problématique. Je viens d’ouvrir votre fichier. Je suis dans l’onglet Matrice_Qte. Dans la matrice, pour la semaine 2020-S07, je vois un total de 340,398 (si je retire les éléments en ligne). Et c’est aussi le montant que je vois pour la même semaine dans votre graphique en-dessous.

    Toutes les autres valeurs semblent aussi être les mêmes.

    Donc, quel est exactement le problème? Pouvez-vous fournir un exemple chiffré?

    Merci.

    Sophie

    #61084
    GuiMon
    Participant

    Madame,
    J’ai rajouté en pièce jointe un excel dans un premier onglet les étapes expliquant mon problème et dans un second onglet la valeur que je souhaite retrouver.
    Pour résumer, par exemple, lorsque je copie toute la colonne de la semaine S-07 de ma matrice et que je colle ces valeurs dans un Excel, la somme fait 341 103, or dans le PowerBI la somme fait 340 398.

    Attachments:
    You must be logged in to view attached files.
    #61102
    Sophie Marchand
    Participant

    Bonjour,

    Je ne suis malheureusement pas en mesure de vous aider. Je n’ai pas tenté de copier coller les données dans Excel (car la quantité est astronomique), mais si on se fie au total de la matrice, il est égal à celui du graphique. Donc les deux présentent le même chiffre. Il n’y a donc pas un problème particulièrement avec le graphique, comme vous sembliez le prétendre dans votre question. Il y a peut-être un problème dans votre copier/coller. Je ne sais pas. Avez-vous vérifié avec les données source le résultat qui devrait être le bon?

    Sophie

    #61103
    GuiMon
    Participant

    Madame,
    Dans le fichier excel j’ai collé seulement les valeurs de la colonne 2020-S07 et on voit bien que le total n’est pas le même et il n’y a pas d’erreur dans le copier/coller.
    Pour moi le problème vient de la condition si la valeur est inférieure à 0 alors c’est égal à 0. Cette condition fonctionne correctement lorsque l’on affiche le résultat composant/composant mais lorsque l’on fait le total directement sans le détail composant/composant cette condition ne fonctionne plus comme je le souhaite. La formule fait la somme pour tous les composants des entrées et la somme pour tous les composants des sorties et regarde si le résultat est inférieur à 0 alors que je voudrais que cette condition soit appliqué composant/composant puis qu’après j’arrive à récupérer la somme.
    Merci pour votre aide.

    • Cette réponse a été modifiée le il y a 4 années et 2 mois par GuiMon.
    #61107
    Sophie Marchand
    Participant

    Bonjour,

    Vous avez changé votre question… Ce n’est plus la même question qu’au départ…

    Votre problème est sans doute un problème comme celui expliqué ici: https://www.lecfomasque.com/power-bi-la-fonction-sumx-en-renfort-erreur-courante-chez-les-debutants/.

    J’avoue que je manque de temps pour examiner votre mesure plus en détails. Je vous prie donc de consulter cet article et de voir par vous-mêmes si cela peut vous mettre sur la bonne piste.

    Merci.

    Sophie

    #61122
    GuiMon
    Participant

    Bonjour Madame,
    Il s’agit pourtant de la même question, excusez moi si je l’avais mal expliqué au départ.
    J’arrive au bon résultat avec la fonction SUMX et avec l’explication de votre lien !
    Je vous remercie pour votre aide rapide.
    Cordialement

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