Excel DAX - Time Intelligence

DAX possède une fonctionnalité importante et puissante, appelée Time Intelligence. Time Intelligence vous permet d'écrire des formules DAX qui font référence aux périodes à utiliser dans les tableaux croisés dynamiques.

DAX dispose de 35 fonctions d'intelligence temporelle spécifiquement pour l'agrégation et la comparaison des données dans le temps. Cependant, ces fonctions DAX ont certaines contraintes sur les données que vous devez comprendre et travailler avec précaution pour éviter les erreurs.

Pourquoi Time Intelligence rend DAX puissant?

Les fonctions Time Intelligence fonctionnent avec des données en constante évolution, selon le contexte que vous sélectionnez dans les tableaux croisés dynamiques et les visualisations Power View. Comme vous le savez, la plupart des analyses de données impliquent la synthèse des données sur des périodes de temps, la comparaison des valeurs de données sur les périodes de temps, la compréhension des tendances et la prise de décisions basées sur des projections futures.

Par exemple, vous souhaiterez peut-être additionner les montants des ventes du mois dernier par produit et comparer les totaux avec ceux des autres mois de l'exercice. Cela signifie que vous devez utiliser les dates comme moyen de regrouper et d'agréger les transactions de vente pour une période donnée.

C'est là que vous pouvez observer la puissance de DAX. Vous pouvez utiliser les fonctions d'intelligence temporelle DAX pour définir des champs calculés qui vous aident à analyser les données au fil du temps, sans avoir à modifier les sélections de date dans les tableaux croisés dynamiques. Cela facilite votre travail. De plus, vous pouvez créer des tableaux croisés dynamiques qui ne seraient pas possibles autrement.

Conditions requises pour les fonctions DAX Time Intelligence

Les fonctions d'intelligence temporelle DAX ont certaines exigences. Si ces conditions ne sont pas remplies, vous risquez d'obtenir des erreurs ou de ne pas fonctionner correctement. Par conséquent, vous pouvez également faire référence à ces exigences en tant que règles ou contraintes. Voici certaines exigences / règles / contraintes des fonctions DAX Time Intelligence -

  • Vous devez avoir une table de dates dans votre modèle de données.

  • La table de dates doit inclure une colonne considérée comme la colonne Date par DAX. Vous pouvez nommer la colonne comme vous le souhaitez, mais elle doit respecter les conditions suivantes: o La colonne de date doit contenir un ensemble contigu de dates couvrant chaque jour de la période pendant laquelle vous analysez les données.

    • Chaque date doit exister une et une seule fois dans la colonne de date.

    • Vous ne pouvez sauter aucune date (par exemple, vous ne pouvez pas sauter les dates du week-end).

  • Les fonctions d'intelligence temporelle DAX fonctionnent uniquement sur un calendrier standard et supposent que le début de l'année est le 1er janvier et la fin de l'année le 31 décembre, avec les mois de l'année et les jours de chaque mois à partir d'une année civile.

Cependant, vous pouvez personnaliser un calendrier standard pour différents exercices. Il est recommandé de vérifier les exigences ci-dessus avant toute utilisation de la fonction de renseignement.

Pour plus de détails sur les tables de dates et leur utilisation dans les formules DAX, reportez-vous au didacticiel = Modélisation des données avec DAX dans cette bibliothèque de didacticiels.

Fonctions DAX Time Intelligence - Catégories

Les fonctions DAX Time Intelligence peuvent être classées comme suit -

  • Fonctions DAX qui renvoient une seule date.
  • Fonctions DAX qui renvoient une table de dates.
  • Fonctions DAX qui évaluent les expressions sur une période de temps.

Fonctions DAX qui renvoient une seule date

Les fonctions DAX de cette catégorie renvoient une seule date.

Il y a 10 fonctions DAX dans cette catégorie -

N ° Sr. Fonction DAX et valeur de retour
1

FIRSTDATE (Date_Column)

Renvoie la première date dans Date_Column dans le contexte actuel.

2

LASTDATE (Date_Column)

Renvoie la dernière date de Date_Column dans le contexte actuel.

3

FIRSTNONBLANK (Date_Column, Expression)

Renvoie la première date à laquelle une expression a une valeur non vide.

4

LASTNONBLANK (Date_Column, Expression)

Renvoie la dernière date à laquelle une expression a une valeur non vide.

5

STARTOFMONTH (Date_Column)

Renvoie la première date d'un mois dans le contexte actuel.

6

ENDOFMONTH (Date_Column)

Renvoie la dernière date d'un mois dans le contexte actuel.

sept

STARTOFQUARTER (Date_Column)

Renvoie la première date d'un trimestre dans le contexte actuel.

8

ENDOFQUARTER (Date_Column)

Renvoie la dernière date d'un trimestre dans le contexte actuel.

9

STARTOFYEAR (Date_Column, [YE_Date])

Renvoie la première date d'une année dans le contexte actuel.

dix

ENDOFYEAR (Date_Column, [YE_Date])

Renvoie la dernière date d'une année dans le contexte actuel.

Fonctions DAX qui renvoient une table de dates

Les fonctions DAX de cette catégorie renvoient un tableau de dates. Ces fonctions seront principalement utilisées comme argument SetFilter pour la fonction DAX - CALCULATE.

Il existe 16 fonctions DAX dans cette catégorie. Huit (8) de ces fonctions DAX sont les fonctions «précédente» et «suivante».

  • Les fonctions «précédent» et «suivant» commencent par une colonne de date dans le contexte actuel et calculent le jour, le mois, le trimestre ou l'année précédent ou suivant.

  • Les fonctions «précédentes» fonctionnent à rebours à partir de la première date dans le contexte actuel et les fonctions «suivantes» avancent à partir de la dernière date dans le contexte actuel.

  • Les fonctions «précédent» et «suivant» renvoient les dates résultantes sous la forme d'un tableau à colonne unique.

N ° Sr. Fonction DAX et valeur de retour
1

PREVIOUSDAY (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates représentant le jour précédant la première date dans Date_Column dans le contexte actuel.

2

NEXTDAY (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates du jour suivant, en fonction de la première date spécifiée dans Date_Column dans le contexte actuel.

3

PREVIOUSMONTH (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates du mois précédent, en fonction de la première date de Date_Column dans le contexte actuel.

4

NEXTMONTH (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates du mois suivant, en fonction de la première date de Date_Column dans le contexte actuel.

5

PREVIOUSQUARTER (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates du trimestre précédent, en fonction de la première date de Date_Column dans le contexte actuel.

6

NEXTQUARTER (Date_Column)

Renvoie une table qui contient une colonne de toutes les dates du trimestre suivant, en fonction de la première date spécifiée dans Date_Column dans le contexte actuel.

sept

PREVIOUSYEAR (Date_Column, [YE_Date])

Renvoie une table qui contient une colonne de toutes les dates de l'année précédente, en fonction de la dernière date de Date_Column dans le contexte actuel.

8

NEXTYEAR (Date_Column, [YE_Date])

Renvoie une table qui contient une colonne de toutes les dates de l'année suivante, en fonction de la première date de Date_Column dans le contexte actuel.

Quatre (4) fonctions DAX calculent un ensemble de dates dans une période. Ces fonctions effectuent les calculs en utilisant la dernière date dans le contexte actuel.

N ° Sr. Fonction DAX et valeur de retour
1

DATESMTD (Date_Column)

Renvoie une table qui contient une colonne des dates du mois en cours, dans le contexte actuel.

2

DATESQTD (Date_Column)

Renvoie une table qui contient une colonne des dates du trimestre écoulé, dans le contexte actuel.

3

DATESYTD (Date_Column, [YE_Date])

Renvoie une table qui contient une colonne des dates de l'année en cours, dans le contexte actuel.

4

SAMEPERIODLASTYEAR (Date_Column)

Renvoie une table qui contient une colonne de dates décalées d'un an en arrière par rapport aux dates de la Date_Column spécifiée, dans le contexte actuel.

Note- SAMEPERIODLASTYEAR nécessite que le contexte actuel contienne un ensemble contigu de dates.

Si le contexte actuel n'est pas un ensemble contigu de dates, SAMEPERIODLASTYEAR renverra une erreur.

  • Quatre (4) fonctions DAX sont utilisées pour passer de l'ensemble de dates qui se trouvent dans le contexte actuel à un nouvel ensemble de dates.

    Ces fonctions DAX sont plus puissantes que les précédentes.

    • Fonctions DAX - DATEADD, DATESINPERIOD et PARALLELPERIOD décalent un certain nombre d'intervalles de temps par rapport au contexte actuel. L'intervalle peut être un jour, un mois, un trimestre ou une année, représenté par les mots clés - DAY, MONTH, QUARTER et YEAR respectivement.

      Par exemple:

  • Reculer de 2 jours.

  • Avancez de 5 mois.

  • Avancez d'un mois à partir d'aujourd'hui.

  • Revenez au même trimestre l'année dernière.

      Si l'argument de la fonction - nombre d'intervalles (valeur entière) est positif, le décalage est vers l'avant et s'il est négatif, le décalage est vers l'arrière.

    • Fonction DAX - DATESBETWEEN calcule l'ensemble de dates entre la date de début spécifiée et la date de fin.

N ° Sr. Fonction DAX et valeur de retour
1

DATEADD (Date_Column, 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.

2

DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval)

Renvoie une table qui contient une colonne de dates commençant par start_date et se poursuivant pendant le nombre_de_intervalles spécifié.

3

PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval)

Renvoie une table qui contient une colonne de dates qui représente une période parallèle aux dates de la Date_Column spécifiée dans le contexte actuel, avec les dates décalées d'un certain nombre d'intervalles vers l'avant ou vers l'arrière dans le temps.

4

DATESBETWEEN (Date_Column, Start_Date, End_Date)

Renvoie une table qui contient une colonne de dates commençant par start_date et se poursuivant jusqu'à end_date.

Fonctions DAX qui évaluent des expressions sur une période de temps

Les fonctions DAX de cette catégorie évaluent une expression sur une période spécifiée.

Il y a neuf (9) fonctions DAX dans cette catégorie -

  • Trois (3) fonctions DAX de cette catégorie peuvent être utilisées pour évaluer une expression donnée sur une période de temps spécifiée.

N ° Sr. Fonction DAX et valeur de retour
1

TOTALMTD (Expression, Date_Column, [SetFilter])

Évalue la valeur de l'expression pour les dates du mois en cours, dans le contexte actuel.

2

TOTALQTD (Expression, Date_Column, [SetFilter])

Évalue la valeur de l'expression pour les dates du trimestre en cours, dans le contexte actuel.

3

TOTALYTD (Expression, Date_Column, [SetFilter], [YE_Date])

Évalue la valeur de l'expression pour les dates de l'année en cours, dans le contexte actuel

  • Six (6) fonctions DAX de cette catégorie peuvent être utilisées pour calculer les soldes d'ouverture et de clôture.

    • Le solde d'ouverture de toute période est le même que le solde de clôture de la période précédente.

    • Le solde de clôture comprend toutes les données jusqu'à la fin de la période, tandis que le solde d'ouverture ne comprend aucune donnée de la période en cours.

    • Ces fonctions DAX renvoient toujours la valeur d'une expression évaluée à un moment donné.

  • Le moment qui nous intéresse est toujours la dernière valeur de date possible dans une période calendaire.

  • Le solde d'ouverture est basé sur la dernière date de la période précédente, tandis que le solde de clôture est basé sur la dernière date de la période en cours.

  • La période actuelle est toujours déterminée par la dernière date dans le contexte de la date actuelle.

N ° Sr. Fonction DAX et valeur de retour
1

OPENINGBALANCEMONTH (Expression, Date_Column, [SetFilter])

Évalue l'expression à la première date du mois dans le contexte actuel.

2

CLOSINGBALANCEMONTH (Expression, Date_Column, [SetFilter])

Évalue l'expression à la dernière date du mois dans le contexte actuel.

3

OPENINGBALANCEQUARTER (Expression, Date_Column, [SetFilter])

Évalue l'expression à la première date du trimestre, dans le contexte actuel.

4

CLOSINGBALANCEQUARTER (Expression, Date_Column, [SetFilter])

Évalue l'expression à la dernière date du trimestre dans le contexte actuel.

5

OPENINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date])

Évalue l'expression à la première date de l'année dans le contexte actuel.

6

CLOSINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date])

Évalue l'expression à la dernière date de l'année dans le contexte actuel.