Evaluation d'un champ calculé puis somme

Accueil – Le CFO masqué Forums Power Pivot Evaluation d'un champ calculé puis somme

7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Articles
  • #35759
    Aeon
    Participant

    Bonjour,

    J’utilise la version de PowerPivot sous Excel 2013.
    J’ai découvert cet outil et la langage DAX il y a peu mais j’en maîtrise les bases.

    Le problème auquel je suis confronté est le suivant :
    J’ai créé un champ calculé qui me permet d’obtenir un écart de production exprimé en dollar.
    Mes données sont organisées de la façon suivante :
    – Une ligne par ressource, contenant la quantité produite, la quantité budgétée et la valeur marchande de la ressource
    – Ces ressources sont classés par modèle de production
    – Chaque modèle de production contient une ressource de référence, indiquée par la colonne “Reference Resource”
    – Et ces modèles de productions sont rattachés à différentes familles

    Lorsque je calcul l’écart de production, je dois d’abord calculer l’écart relatif de production de la ressource de référence, puis multiplier cet écart relatif par la somme des valeurs marchandes de toutes les ressources contenues dans le modèle de production.
    Ce calcul marche très bien lorsque j’affiche les résultats par modèle de production dans un TCD

    Le soucis est lorsque je veux afficher ce calcul par famille. Je souhaiterai que la valeur afficher dans le TCD en face de la famille soit égale à la somme des écarts relatifs des différents modèles de production contenus dans la famille.
    Or ici PowerPivot réalise d’abord la somme des différentes lignes correspondant aux ressources de référence des modèles de la famille, calcul l’écart relatif à partir de ces sommes, puis le multiplie par la somme de toutes les valeurs marchandes des ressources contenues dans la famille.

    Autrement dit, “La somme est écarts n’est pas égale à l’écart des sommes”
    Comme faire en sorte de PowerPivot calcule chaque écart indépendamment pour chaque modèle de production, puis réalise la somme de ces écarts pour chaque famille ?

    J’ai fait plusieurs tentatives avec la fonction FILTER() en espérant qu’elle réalise une itération pour chaque valeur de la colonne “Production Model”, de même avec la fonction EARLIER() mais sans aboutir au résultat voulu.

    Après plusieurs recherches internet, je n’ai pas trouvé de problème similaire au mien, je m’en remet donc à votre aide.
    J’ai joint un fichier d’exemple en essayant d’être le plus clair possible

    Merci d’avance pour votre aide,
    Aeon

    Attachments:
    You must be logged in to view attached files.
    #36081
    mrivest
    Participant

    Pas certain de bien comprendre votre problème, mais, si je comprends un peu, je crois que vous devriez essayer la formule sumx
    Sumx remplace le calcul des totaux et sous totaux par la somme des calculs effectués, si on peut dire ainsi.

    #36082
    mrivest
    Participant

    J’ai ouvert votre modèle, plus simple a comprendre en regardant comment c’est fait.
    Essayez ceci:

    rd:=sumx(values(fTable[Production Model]),[Relative_Difference])

    ça fonctionne. Possiblement que vous pourriez réécrire votre mesure en utilisant des sumx, mais, bref, ce que j’ai fait fonctionne.

    quelques lectures:
    https://www.sqlbi.com/articles/row-context-and-filter-context-in-dax/

    DAX – SUM, SUMX or CALCULATE()…Choices, choices!

    #36083
    mrivest
    Participant
    #36088
    Aeon
    Participant

    Bonjour mrivest !

    Merci de t’être penché sur mon problème, tu as raison il fallait bien utiliser la fonction SUMX sauf que je n’ai pas utilisé la fonction VALUES() comme toi mais la fonction SUMARIZE() qui (si j’ai bien compris) décompose une table en sous table selon les critères que tu lui fais passer, puis en la combinant avec la fonction SUMX(), le calcul est fait sur chaque “sous-tableau” puis les différents valeurs sont sommées.

    Merci pour ton aide !

    #36091
    mrivest
    Participant

    Super.
    J’utilise pas souvent summarize. Elle est complexe et généralement inutile à mon avis. Mais si ça fonctionne, alors tant mieux!

    Je travaille avec le langage dax depuis 2011 environ. Si jamais je peux aider pour des problèmes particuliers, ça me fera plaisir.

    #36092
    mrivest
    Participant
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.