Accueil – Le CFO masqué › Forums › Power Pivot › Evaluation d'un champ calculé puis somme
- Ce sujet contient 6 réponses, 2 participants et a été mis à jour pour la dernière fois par mrivest, le il y a 7 années et 2 mois.
-
AuteurArticles
-
20 juin 2017 à 5 h 55 min #35759AeonParticipant
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 famillesLorsque 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 TCDLe 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 possibleMerci d’avance pour votre aide,
AeonAttachments:
You must be logged in to view attached files.30 juin 2017 à 18 h 26 min #36081mrivestParticipantPas 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.30 juin 2017 à 18 h 38 min #36082mrivestParticipantJ’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/30 juin 2017 à 18 h 46 min #36083mrivestParticipantUne autre bonne lecture sur le sujet
2 juillet 2017 à 7 h 51 min #36088AeonParticipantBonjour 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 !
2 juillet 2017 à 12 h 43 min #36091mrivestParticipantSuper.
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.
2 juillet 2017 à 12 h 45 min #36092mrivestParticipantTiens, un bon article sur summarize
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.