Automatiser la création d'une table de dates

10 mars 2024

Pourquoi ?

Si vous êtes amenés à créer régulièrement de nouveaux rapports, la création de tables de dates va vite devenir répétitif et chronophage. Et comme c’est une étape quasi obligatoire, autant essayez d’automatiser un minimum ce travail.

Comment ?

L’idée est de créer un petit script qui va créer la table de dates avec toutes les colonnes habituelles que l’on utilise. Ce script sera conservé dans un bloc note : à chaque utilisation, il suffira de faire créer une table et de coller le code.

Un exemple

La fonction qui nous intéresse ici est ADDCOLUMNS. Elle va permettre d’inclure dans un script tout le travail fait pour la création de la table de dates (voir le billet précédent)

Dates = 
    ADDCOLUMNS(
        CALENDAR(
            DATE(DATE(YEAR(MIN(Ventes[Date_Facture])), 1, 1),
            DATE(DATE(YEAR(MAX(Ventes[Date_Facture])), 12, 31)
        ),
        "Année", YEAR([Date]),
        "Mois", MONTH([Date]),
        "Mois en lettre", FORMAT([Date], "mmmm")
    )

Explications

ADDCOLUMNS prend au minimum 3 paramètres :

  • une table : cette fonction va ajouter des colonnes. Il faut donner le point de départ, ici une table représentée par la fonction CALENDAR
  • Le nom de la colonne ajoutée : “Année”
  • La valeur de la colonne ajoutée : la fonction YEAR

Le point intéressant ici est que le moteur DAX reconnait bien la table créée par CALENDAR et propose par conséquent d’utiliser la colonne [Date] comme argument dans les autres colonnes. Cela se produit au fur et à mesure de la saisie : le code est analysé par intellisense (aide à la complétion du code)