DATESMTD équivlalent DatesYTDmaison

Mots-clés : 

  • 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 3 années et 10 mois.
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #64497
    philippe.muniesa
    Participant

    Bonjour 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

    #64500
    Sophie Marchand
    Participant

    Bonjour,

    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.
    #64618
    philippe.muniesa
    Participant

    Ok 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

    #64620
    Sophie Marchand
    Participant

    Bonjour,

    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

    #64681
    philippe.muniesa
    Participant

    Sophie,

    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.
    #64688
    Sophie Marchand
    Participant

    Bonjour,

    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

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