DAX-Modèles Total cumulé


Le modèle de total cumulé permet de réaliser des sommes à date, particulièrement utiles en gestion.

Par exemple, ce modèle pourra être utilisé pour créer une mesure de solde cumulé dans un grand livre, ou un stock à date.

 

Modèle simple

Pour commencer nous allons utiliser un modèle très simple, contenant deux tables jointes par la colonne date :

  • Une table de dates (Calendrier)
  • Une table des mouvements de stocks (Mouvements)

 

Si maintenant nous créons un rapport comprenant la date et la somme des mouvements, nous obtenons ceci :

Dans chaque ligne, la somme des mouvements est limitée à la journée, puisque le champs date agit comme filtre de chaque ligne du rapport.

Pour obtenir un total cumulé, nous devons éliminer ce filtre pour le remplacer par:

  • Date de début = Aucune;
  • Date de fin = Date maximale de la ligne en cours.

Par exemple ici :

  • La date minimale sera la première date de la table Calendrier;
  • La date maximale sera le 04/01/2019.

La mesure adaptée est la suivante :

La fonction Filter() permet de modifier le filtre du rapport :

Le premier argument est une table (la fonction All() permet de supprimer des filtres existant);

Le deuxième filtre la table Calendrier, pour ne retenir que les dates inférieures à la date maximale du contexte d’évaluation.

Il est possible de passer autant d’arguments à la fonction Filter().

Si on descend les lignes du rapport, on s’aperçoit que la mesure retourne une valeur identique après le 22/04/2020 , puisqu’il n’y a plus de mouvements dans cette table, après cette date.

 

Pour ne retourner de valeur cumulée que lorsqu’il y a des mouvements, il va nous falloir réaliser un test :

Question : la valeur minimale du contexte (ici de la ligne) pour le champs Calendrier[Date] (par exemple ici 23/04/2020) est elle inférieure à la valeur maximale existant dans la table des mouvements (ici le 22/04/2020) ?

Si oui, la mesure doit retourner le total cumulé, sinon ne rien retourner.

Le rapport ne retourne plus de lignes après la date du dernier mouvement.

 

Modèle élaboré, l’exemple du calcul des stocks valorisés.

Pour réaliser un inventaire valorisé des stocks à date, vous devez disposer d’un modèle de données de ce type :

Au modèle précédent, nous avons ajouté une colonne article à la table Mouvements et nous avons ajouté une table des Produits contenant le prix unitaire par article.

Pour calculer la valeur d’inventaire par produit notre mesure va devoir parcourir la table des Produits, et calculer la valeur du stock (Prix unitaire * Stock)

Pour que cette mesure fonctionne, Il nous faut donc générer la valeur du Stock.

Pour cela, nous allons créer une mesure [stock] à partir du modèle total cumulé que nous avons étudié précédemment.

Nous pouvons à présent voir le résultat dans un rapport :

Pour aller plus loin : calculer dynamiquement le prix unitaire.

 

Dans le modèle précédent le prix unitaire de chaque article est fourni par la table Produits.

Ce sera le cas lorsque votre base de donnée calculera le coût de revient des articles et procédera à une mise à jour (souvent journalière) du champs valeur de la table Produits.

Dans le cas ou nous ne disposerions pas de cette donnée calculée, nous devrions la générer dynamiquement, en fonction des règles de gestion de l’entreprise (CUMP, PEPS…)

Par exemple, dans le cas ou la règle appliquée pour la valorisation des stocks serait le dernier prix d’achat.

 

 

 

 

 

 

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *