Excel DAX - Utilisation de Time Intelligence

Vous avez découvert la puissante fonction Time Intelligence de DAX dans le chapitre - Comprendre Time Intelligence. Dans ce chapitre, vous apprendrez à utiliser les fonctions d'intelligence temporelle DAX dans divers scénarios.

Les fonctions d'intelligence temporelle DAX incluent -

  • Fonctions qui vous aident à récupérer des dates ou des plages de dates à partir de vos données, qui sont utilisées pour calculer des valeurs sur des périodes similaires.

  • Fonctions qui fonctionnent avec des intervalles de dates standard, pour vous permettre de comparer des valeurs sur des mois, des années ou des trimestres.

  • Fonctions qui récupèrent la première et la dernière date d'une période spécifiée.

  • Des fonctions qui vous aident à travailler sur les soldes d'ouverture et de clôture.

Calcul des ventes cumulées

Vous pouvez utiliser les fonctions d'intelligence temporelle DAX pour créer des formules de calcul des ventes cumulées. Les fonctions DAX suivantes peuvent être utilisées pour calculer les soldes de clôture et d'ouverture -

CLOSINGBALANCEMONTH (<expression>,<dates>, [<filter>]) - Évalue l'expression à la dernière date du mois dans le contexte actuel.

OPENINGBALANCEMONTH (<expression>,<dates>, [<filter>]) - Évalue l'expression à la première date du mois dans le contexte actuel.

CLOSINGBALANCEQUARTER (<expression>,<dates>, [<filter>]) - Évalue l'expression à la dernière date du trimestre dans le contexte actuel.

OPENINGBALANCEQUARTER (<expression>,<dates>, [<filter>]) - Evalue l'expression à la première date du trimestre, dans le contexte actuel.

CLOSINGBALANCEYEAR (<expression>,<dates>, [<filter>], [<year_end_date>]) - Évalue l'expression à la dernière date de l'année dans le contexte actuel.

OPENINGBALANCEYEAR (<expression>, <dates>, <filter>], [<year_end_date>]) - Évalue l'expression à la première date de l'année dans le contexte actuel.

Vous pouvez créer les champs calculés suivants pour l'inventaire du produit à un moment spécifié à l'aide des fonctions DAX suivantes:

Month Start Inventory Value: = OPENINGBALANCEMONTH ( 
   SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Month End Inventory Value: = CLOSINGBALANCEMONTH ( 
   SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter Start Inventory Value: = OPENINGBALANCEQUARTER ( 
   SUMX ProductInventory, (ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter End Inventory Value: = CLOSINGBALANCEQUARTER ( 
   SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year Start Inventory Value: = OPENINGBALANCEYEAR ( 
   SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year End Inventory Value: = CLOSINGBALANCEYEAR ( 
   SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)

Comparaison des valeurs sur différentes périodes

Les périodes par défaut prises en charge par DAX sont les mois, les trimestres et les années.

Vous pouvez utiliser les fonctions d'intelligence temporelle DAX suivantes pour comparer les sommes sur différentes périodes.

  • PREVIOUSMONTH (<dates>) - Renvoie un tableau contenant une colonne de toutes les dates du mois précédent, en fonction de la première date de la colonne des dates, dans le contexte actuel.

  • PREVIOUSQUARTER (<dates>) - Renvoie un tableau contenant une colonne de toutes les dates du trimestre précédent, en fonction de la première date de la colonne des dates, dans le contexte actuel.

  • PREVIOUSYEAR (<dates>, <year_end_date>]) - Renvoie un tableau contenant une colonne de toutes les dates de l'année précédente, compte tenu de la dernière date dans la colonne des dates, dans le contexte actuel.

Vous pouvez créer les champs calculés suivants pour calculer la somme des ventes dans la région Ouest aux périodes spécifiées à des fins de comparaison, à l'aide des fonctions DAX -

Previous Month Sales: = CALCULATE ( 
   SUM (WestSales[SalesAmount]), PREVIOUSMONTH (DateTime [DateKey])
)
Previous Quarter Sales: = CALCULATE ( 
   SUM (WestSales[SalesAmount]), PREVIOUSQUARTER (DateTime [DateKey])
)
Previous Year Sales: = CALCULATE ( 
   SUM (WestSales[SalesAmount]), PREVIOUSYEAR (DateTime [DateKey])
)

Comparaison des valeurs sur des périodes parallèles

Vous pouvez utiliser la fonction DAX Time Intelligence PARALLELPERIOD pour comparer les sommes sur une période parallèle à la période spécifiée.

PARALLELPERIOD (<dates>, <number_of_intervals>, <interval>)

Cette fonction DAX renvoie une table qui contient une colonne de dates représentant une période parallèle aux dates de la colonne de dates spécifiée, dans le contexte actuel, les dates étant décalées d'un certain nombre d'intervalles en avant ou en arrière dans le temps.

Vous pouvez créer le champ calculé suivant pour calculer les ventes de l'année précédente dans la région Ouest -

Previous Year Sales: = CALCULATE ( 
   SUM (West_Sales[SalesAmount]), PARALLELPERIOD (DateTime[DateKey],-1,year)
)

Calcul des totaux cumulés

Vous pouvez utiliser les fonctions d'intelligence temporelle DAX suivantes pour calculer les totaux en cours d'exécution ou les sommes en cours.

  • TOTALMTD (<expression>,<dates>, [<filter>]) - Évalue la valeur de l'expression pour le mois en cours dans le contexte actuel.

  • TOTALQTD (<expression>,<dates>, <filter>]) - Évalue la valeur de l'expression pour les dates du trimestre en cours, dans le contexte actuel.

  • TOTALYTD (<expression>,<dates>, [<filter>], [<year_end_date>]) - Évalue la valeur cumulative de l'expression dans le contexte actuel.

Vous pouvez créer les champs calculés suivants pour calculer la somme cumulée des ventes dans la région Ouest à des périodes spécifiées, à l'aide des fonctions DAX -

Somme cumulée du mois: = TOTALMTD (SUM (West_Sales [SalesAmount]), DateTime [DateKey])

Somme cumulée du trimestre: = TOTALQTD (SUM (WestSales [SalesAmount]), DateTime [DateKey])

Somme cumulée de l'année: = TOTALYTD (SUM (WestSales [SalesAmount]), DateTime [DateKey])

Calcul d'une valeur sur une plage de dates personnalisée

Vous pouvez utiliser les fonctions d'intelligence temporelle DAX pour récupérer un ensemble personnalisé de dates, que vous pouvez utiliser comme entrée d'une fonction DAX qui effectue des calculs, pour créer des agrégats personnalisés sur des périodes.

DATESINPERIOD (<dates>, <start_date>, <number_of_intervals>, <interval>) - Renvoie une table contenant une colonne de dates commençant par start_date et se poursuivant pendant le nombre_d'intervalles spécifié.

DATESBETWEEN (<dates>, <start_date>, ) - Renvoie une table qui contient une colonne de dates commençant par start_date et se poursuivant jusqu'à end_date.

DATEADD (<dates>,<number_of_intervals>,<interval>) - Renvoie une table qui contient une colonne de dates, décalée vers l'avant ou vers l'arrière dans le temps du nombre spécifié d'intervalles à partir des dates dans le contexte actuel.

FIRSTDATE (<dates>) - Renvoie la première date dans le contexte actuel pour la colonne de dates spécifiée.

LASTDATE (<dates>) - Renvoie la dernière date dans le contexte actuel pour la colonne de dates spécifiée.

Vous pouvez créer les formules DAX suivantes pour calculer la somme des ventes dans la région Ouest sur une plage de dates spécifiée, à l'aide des fonctions DAX -

  • Formule DAX pour calculer les ventes pour les 15 jours précédant le 17 juillet 2016.

CALCULATE ( 
   SUM (WestSales[SalesAmount]), DATESINPERIOD (DateTime[DateKey], DATE(2016,17,14), -15, day)
)
  • Formule DAX pour créer un champ calculé qui calcule les ventes du premier trimestre 2016.

= CALCULATE (
   SUM (WestSales[SalesAmount]),DATESBETWEEN (DateTime[DateKey], DATE (2016,1,1), DATE (2016,3,31))
)
  • Formule DAX pour créer un champ calculé qui obtient la première date à laquelle une vente a été effectuée dans la région Ouest pour le contexte actuel.

= FIRSTDATE (WestSales [SaleDateKey])
  • Formule DAX pour créer un champ calculé qui obtient la dernière date à laquelle une vente a été effectuée dans la région Ouest pour le contexte actuel.

= LASTDATE (WestSales [SaleDateKey])
  • Formule DAX pour calculer les dates qui sont un an avant les dates dans le contexte actuel.

= DATEADD (DateTime[DateKey],-1,year)