Code court
Calendrier = ADDCOLUMNS(
CALENDARAUTO() ,
"@Année" , FORMAT([Date],"YYYY"),
"Rang Année", RANKX(CALENDARAUTO(), YEAR([Date]), , ASC, Dense),
"@Semestre" , IF(MONTH([Date]) <= 6, "S1", "S2"),
"Année Semestre" , YEAR([Date]) & "-" & IF(MONTH([Date]) <= 6, "S1", "S2"),
"Rang Semestre" , RANKX(CALENDARAUTO(), YEAR([Date]) & "-" & IF(MONTH([Date]) <= 6, "S1", "S2"), , ASC, Dense),
"@Trimestre" , FORMAT([Date],"TQ"),
"Année Trimestre" , FORMAT([Date],"YYYY-TQ"),
"Rang Trimestre" , RANKX(CALENDARAUTO(), FORMAT([Date],"YYYY-TQ"), , ASC, Dense),
"@Mois" , FORMAT([Date],"MM"),
"Année Mois" , FORMAT([Date],"YYYY-MM"),
"Rang Mois" , RANKX(CALENDARAUTO(), FORMAT([Date],"YYYY-MM"), , ASC, Dense),
"@Semaine" , FORMAT(WEEKNUM([Date], 2), "00"),
"Année Semaine" , YEAR([Date]) & "-" & FORMAT(WEEKNUM([Date], 2), "00"),
"Rang Semaine", RANKX(CALENDARAUTO(), YEAR([Date]) & "-" & FORMAT(WEEKNUM([Date], 2), "00"), , ASC, Dense)
)
Code long
Calendrier = ADDCOLUMNS(
CALENDARAUTO() ,
"@Année" , FORMAT([Date],"YYYY"),
"Rang Année", RANKX(CALENDARAUTO(), YEAR([Date]), , ASC, Dense),
"@Semestre" , IF(MONTH([Date]) <= 6, "S1", "S2"),
"Année Semestre" , YEAR([Date]) & "-" & IF(MONTH([Date]) <= 6, "S1", "S2"),
"Rang Semestre" , RANKX(CALENDARAUTO(), YEAR([Date]) & "-" & IF(MONTH([Date]) <= 6, "S1", "S2"), , ASC, Dense),
"@Trimestre" , FORMAT([Date],"TQ"),
"Année Trimestre" , FORMAT([Date],"YYYY-TQ"),
"Rang Trimestre" , RANKX(CALENDARAUTO(), FORMAT([Date],"YYYY-TQ"), , ASC, Dense),
"@Mois" , FORMAT([Date],"MM"),
"@Mois Lettre" , FORMAT([Date],"MMMM"),
"Année Mois" , FORMAT([Date],"YYYY-MM"),
"Rang Mois" , RANKX(CALENDARAUTO(), FORMAT([Date],"YYYY-MM"), , ASC, Dense),
"@Semaine" , FORMAT(WEEKNUM([Date], 2), "00"),
"Année Semaine" , YEAR([Date]) & "-" & FORMAT(WEEKNUM([Date], 2), "00"),
"Rang Semaine", RANKX(CALENDARAUTO(), YEAR([Date]) & "-" & FORMAT(WEEKNUM([Date], 2), "00"), , ASC, Dense),
"@Jour Mois" , FORMAT([Date],"DD"),
"@Jour Semaine" , SWITCH( TRUE(), OR(FORMAT([Date],"DDDD") = "Lundi", FORMAT([Date],"DDDD") = "Monday") , 1, OR(FORMAT([Date],"DDDD") = "Mardi",FORMAT([Date],"DDDD") = "Thursday") , 2, OR(FORMAT([Date],"DDDD") = "Mercredi",FORMAT([Date],"DDDD") = "Wednesday") , 3, OR(FORMAT([Date],"DDDD") = "Jeudi",FORMAT([Date],"DDDD") = "Tuesday"), 4, OR(FORMAT([Date],"DDDD") = "Vendredi",FORMAT([Date],"DDDD") = "Friday") , 5, OR(FORMAT([Date],"DDDD") = "Samedi",FORMAT([Date],"DDDD") = "Saturday"), 6, OR(FORMAT([Date],"DDDD") = "Dimanche",FORMAT([Date],"DDDD") = "Sunday") , 7, BLANK() ),
"@Jour Lettre" , FORMAT([Date],"DDDD"),
"Rang Jour" , RANKX(CALENDARAUTO(), FORMAT([Date],"YYYY-MM-DD"), , ASC, Dense)
)
Suivant vos besoins, vous pouvez copier/coller un de ces codes tel quel après avoir créer une Nouvelle table à partir de l’onglet Outils de table. La colonne Date de cette table Calendrier pourra être reliée dans votre projet à toutes les tables existantes contenant des colonnes de dates qu’il faudra analyser.
Ces tables de dates universelles pourront vous servir pour tous vos projets et pour toutes vos mesures DAX de type Date to Date appelées également mesures de Time Intelligence.
💡 Après sa création, n’oubliez pas de marquer cette table comme Table de dates de référence avec le bouton Marquer comme table de dates de l’onglet Outils de table de la vue Affichage Table.
Utilité de certaines colonnes
- Les colonnes commençant par Année permettront de filtrer les données sur la période correspondante, jour, semaine, mois, trimestre ou année. Elles seront utilisées dans le puits de l’axe X des abscisses pour les graphiques en courbes ou en aires.
- Les colonnes numérique Mois Chiffre et Jour Numéro permettent de trier dans l’ordre les colonnes texte Mois Lettre, Mois LTTR, Jour Lettre et Jour LTTR.
- Les colonnes Rang vous permettront de réaliser facilement des calculs comparatifs d’une période à l’autre à partir d’une simple mesure de filtre du type CALCULATE( Expression , [Rang Mois] = MAX( [Rang Mois] ) ) qui affichera la valeur de l’Expression pour le dernier mois du Calendrier.
- CALCULATE( Expression , [Rang Mois] = MAX( [Rang Mois] ) – 1 ) affichera la valeur de l’expression pour l’avant dernier mois,
- CALCULATE( Expression , [Rang Mois] = MAX( [Rang Mois] ) – 12 ) affichera la valeur de l’expression pour le même mois de l’année précédente, etc…
💡 On procédera de même pour les jours, les semaines, les trimestres ou les années, le calcul des variations correspondantes en sera simplifié.
