Accueil – Le CFO masqué › Forums › Questions sur les formations du CFO masqué (en français) › DATESMTD équivlalent DatesYTDmaison
Étiqueté : DATESMTD
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par
Sophie Marchand, le il y a 4 années et 10 mois.
-
AuteurMessages
-
10 mai 2020 à 6 h 33 min #64497
philippe.muniesa
ParticipantBonjour Sophie,
Je décortique les fonctions et j’ai essayé de faire une fonction MTD_Maison à l’instar de YTD_Maison que vous proposez comme exemples.
Après plusieurs essais, j’ai fini par trouver celle-ci qui fonctionne
Ventes_$MTD_Maison:=Calculate([Ventes_$];
Filter(All(DimDates[Date]);And(DimDates[date]>= maxx(Dimdates;STARTOFMONTH(Dimdates[Date]));
DimDates[Date]<=maxx(Dimdates;Dimdates[Date]))))Cependant, je ne comprends pas pourquoi la suivante adaptée depuis YTD_Maison me retourne 0
Ventes_$MTDMaison2:=CALCULATE([Ventes_$];
FILTER(
ALL(DimDates[Date]);
AND(DimDates[Date]>= DATE(MAX(DimDates[Année]);MAX(DimDates[mois]);1);
DimDates[Date]<=MAX(DimDates[Date])
)
))Je vois en effet que dans la fonction Date(), le premier paramètre généré par MAX(DimDates[année]) semble bien accepté, mais le second paramètre avec Max de la colonne mois de la même table, semble ne pas être interprété, à moins que ce ne soit autre chose.
Merci d’avance.
Philippe Muniesa
10 mai 2020 à 8 h 04 min #64500Sophie Marchand
ParticipantBonjour,
De mon côté, quand j’insère la fonction ci-dessous:
CALCULATE([Ventes$], FILTER( ALL(DimDates[Date]), AND(DimDates[Date]>= DATE(MAX(DimDates[Année]),MAX(DimDates[Mois]),1), DimDates[Date]<=MAX(DimDates[Date]))))
J’obtiens les bons résutalts (voir extrait image).
Sophie
Attachments:
You must be logged in to view attached files.13 mai 2020 à 17 h 40 min #64618philippe.muniesa
ParticipantOk Sophie, merci
Effectivement après vérification et utilisation de la mesure, elle fonctionne correctement.
En fait, en tant que mesure, elle retourne (vide) et c’est ce qui m’a fait penser qu’elle ne fonctionnait pas, mais placée dans un TCD ELLE EST OK.
CE que je ne comprends pas c est que la mesure initiale avec Max(dimdates[annees]) seulement retourne un total en bas de colonne, et que la formule avec [annees] et [mois], mais identique par ailleurs, retourne un total de colonne.
Il y a deux années dans la table et douze mois pour chaque année, donc des conditions similaires.
Y a t il une raison spécifique que je ne vois pas à cette différence de fonctionnement au niveau des totaux de colonne?.
Merci d’avance
Philippe
13 mai 2020 à 18 h 35 min #64620Sophie Marchand
ParticipantBonjour,
Le total d’une matrice ou d’une table n’est pas le résultat de la somme d’une colonne. Il faut se sortir de la façon de penser d’Excel. La ligne de total est en fait le résultat de la mesure sans les filtres utilisés dans les étiquettes de ligne.
Sophie
14 mai 2020 à 19 h 58 min #64681philippe.muniesa
ParticipantSophie,
Merci de votre intérêt à ces questions de débutant, mais je pense avoir mal posé ma question.
La mesure ci-après issue du cours donne sur chaque ligne le total correspondant à l’expression Ventes_$ évaluée selon le contexte de filtre explicite. Par ailleurs, dans le tableau croisé dynamique en résultant (excel 2019) de la colonne correspondante, on obtient le total 6944170 qui correspond au total de l’année 2014 pour Ventes_$ de 2014
Ventes$YTDMaison:=CALCULATE([Ventes_$];
FILTER(
ALL(DimDates[Date]);
DimDates[Date]>= DATE(MAX(DimDates[Année]);1;1)
&& DimDates[Date]<=MAX(DimDates[Date])))La Mesure suivante adaptée de la première en utilisant DATE(MAX(DimDates[Année]);MAX(DimDates[mois]);1) au lieu de DATE(MAX(DimDates[Année]);1;1), fait apparaitre sur chaque ligne le cumul de ventes mensuel correspondant bien au filtre explicite. Cependant le total de la colonne du tableau croisé dynamique dans lequel cette mesure est utilisé est à 0. C’EST CE QUE JE NE COMPRENDS PAS puisque en toute logique, si la première mesure produit une colonne dont le total est celui de l’année 2014 (l année de la dernière vente de la table VENTES); la seconde mesure devrait produire une colonne dont le total devrait être le montant des ventes du dernier mois de la table des ventes, soit 06/2014 1089940.
Ventes_$MTDMaison2:=CALCULATE([Ventes_$];
FILTER(
ALL(DimDates);
AND(DimDates[Date]>= DATE(MAX(DimDates[Année]);MAX(DimDates[mois]);1);
DimDates[Date]<=MAX(DimDates[Date]))
)
)Et ceci comme la mesure Ventes_$MTD:=CALCULATE([Ventes_$];DATESMTD(DimDates[Date])) dont la colonne présente bien le total 1089940.
Sans titre 3.png.png
Dans le même esprit, et toujours dans l’objectif de comprendre le fonctionnement des formules Timeintelligence et de DAX, j’ai construit la mesure ci-dessous (maxx et Startofmonth).
Ventes_$MTD_Maison:=Calculate([Ventes_$];
Filter(All(DimDates[Date]);And(DimDates[date]>= maxx(Dimdates;STARTOFMONTH(Dimdates[Date]));
DimDates[Date]<=maxx(Dimdates;Dimdates[Date]))))Dont la colonne fait apparaitre un total identique à la mesure Ventes_$MTD, soit 1089940
Enfin une autre mesure censés pour moi avoir les mêmes effets, produit également une colonne sans total.
Ventes$MTD_Maison4:=CALCULATE([Ventes_$];
FILTER(
ALL(DimDates);
(DimDates[Année]=MAX(DimDates[Année])
&& DimDates[Mois]=MAX(DimDates[Mois])
&& DimDates[Date]<=MAX(DimDates[Date]))))Vous l’aurez compris, ce qui m’échappe c’est les conditions pour lesquelles, le total général de colonne est renseigné d’un total ou pas.
Merci à vous
Cordialement
Philippe Muniesa
Attachments:
You must be logged in to view attached files.15 mai 2020 à 9 h 37 min #64688Sophie Marchand
ParticipantBonjour,
Comme je l’ai déjà mentionné, la ligne TOTAL d’un tableau ne fait pas la somme des éléments de la colonne.
La ligne TOTAL exécute la fonction DAX selon le contexte de filtres de cette ligne. Comme il n’y a pas de dates qui filtre la mesure sur cette ligne de TOTAL, la mesure ne peut pas être calculée. D’ailleurs, ça ne ferait aucun sens d’avoir une mesure MTD sur une année complète.
Je vous invite à retirer simplement le total de votre table.
Merci.
Sophie
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.