Datum = /* Script librement proposé par DAXONE.FR - octobre 2019. *** Pour utiliser ce script, penser à préciser date de début et de fin (voir section variables). Date de début et date de fin peuvent être calculées dynamiquement à partir de la date principale ('Date1') et la fonction CALENDAR CALENDAR ( DATE ( YEAR ( MIN ( Date1 ) ) ; 1 ; 1 ); DATE ( YEAR ( MAX ( Date1 ) ) ; 12 ; 31 ) ) Dans ce cas, il convient d'ignorer la section VAR et de remplacer la fonction CALENDAR ligne 26 par les lignes ci-dessus Après sa création, trier la table en fonction de la colonne [Date] - question de confort. Dans l'onglet Modélisation, marquer la table comme table de date et utiliser la fonction "Trier par colonne" pour : - trier la colonne Nom du mois par la colonne Année Mois - trier la colonne Nom court du mois par la colonne Année Mois - trier la colonne Mois par la colonne Numéro du Mois - trier la colonne Semaine par la colonne Numéro de semaine ISO 8601 - trier la colonne Nom du jour par la colonne Numéro du jour De plus, vous pouvez modifier le format du champ Date (par ex. dd/MM/yy) pour ne pas avoir les heures affichées Dans la vue Modèle, lier Datum à la table des faits contenant les dates de transactions, en définissant la liaison active sur la date la plus importante et le cas échéant des liaisons inactives sur les autres dates utiles (à moins de dupliquer la table Datum avec la formule-type Datum2 = Datum) Enfin il est conseillé de masquer les champs de type Date liés à la table Datum et de masquer les champs Numéro du jour, de la semaine ISO 8601 et du mois de la table Datum *** Remarque: dans l'état actuel, les jours fériés n'apparaissent pas dans ce script - à suivre */ VAR DebDate = DATE(2017;1;1) VAR FinDate = DATE(2019;12;31) RETURN ADDCOLUMNS(CALENDAR(DebDate;FinDate); "Année"; FORMAT([Date];"YYYY"); "Trimestre" ; "T"&FORMAT([Date];"Q"); "Numéro du mois"; MONTH([Date]); "Mois"; "M"&FORMAT([Date];"M"); "Année mois"; FORMAT([Date];"YYYYMM"); "Nom du mois"; FORMAT([Date];"MMMM YY") ; "Nom court du mois"; FORMAT([Date];"MMM YY") ; /* "Numéro de semaine" ; WEEKNUM([Date];2) : ceci peut retourner un résultat incorrect. Avec la fonction WEEKNUM, la semaine incluant le 1er janvier est considérée comme la semaine 1. Mais la norme ISO 8601, très utilisée en Europe, fonctionne différemment : la semaine 1 est la première semaine après le 1er janvier contenant au moins 4 jours. Par exemple, si le 1er janvier est un vendredi, la semaine 1 débute le lundi 4. La formule ci-dessous ramène le résultat attendu */ "Numéro de semaine ISO 8601" ; VALUE(FORMAT([Date];"WW")); "Semaine" ; "S" & FORMAT([Date];"WW"); "Numéro du jour" ; WEEKDAY([Date];2); "Nom du jour"; FORMAT([Date];"DDDD"); "Jour ouvré" ; IF(WEEKDAY([Date];2)<6;"Ouvré";"Week-end") )