CALENDAR |
Calendrier |
| DAX (Data Analysis Expressions) |
Syntaxe
|
CALENDAR(start_date, end_date)
|
Paramètres
| Nom |
Description |
| start_date |
Ce paramètre permet de spécifier la date de début de la plage à générer. Il doit s'agir d'une expression qui retourne une date valide. |
| end_date |
Ce paramètre permet de spécifier la date de fin de la plage à générer. Il doit également retourner une date valide, égale ou postérieure à la date de début. |
Description
Cette fonction permet de générer une table contenant une colonne "Date" avec un ensemble continu de dates.
Remarques
- CALENDAR génère une table uniquement basée sur deux bornes temporelles : La fonction CALENDAR produit une table mono-colonne appelée Date, dont le contenu est
un ensemble continu de jours allant de start_date à end_date. Aucun autre champ n'est créé automatiquement, ce qui la rend purement structurelle. Elle sert
surtout de base à un futur enrichissement du calendrier (année, mois, trimestre,...).
- Elle retourne toujours un calendrier complet, sans sauts de jours : L'une des particularités de CALENDAR est qu'elle génère toutes les dates entre les deux
bornes, y compris les fins de semaines et les jours fériés. Cela permet d'obtenir une continuité temporelle indispensable pour les calculs DAX, surtout dans des mesures
cumulées ou des analyses basées sur des périodes. Toute absence de date doit être filtrée manuellement ensuite.
- CALENDAR n'est pas intelligente : elle ne crée pas de hiérarchie : Contrairement à certains générateurs automatiques
(Power BI auto-date), CALENDAR ne connaît ni les années fiscales ni les cycles commerciaux. Elle se limite à une simple colonne
Date. C'est à l'utilisateur de créer des colonnes additionnelles comme Year, Month, MonthName, Quarter via ADDCOLUMNS et des
fonctions temporelles.
- La fonction exige des dates valides et un intervalle chronologique correct : Si end_date < start_date, CALENDAR provoque une erreur. Les
deux paramètres doivent renvoyer un type date ou convertible en date. Cela incite souvent à encapsuler les paramètres avec des fonctions comme DATE(),
MIN(), MAX() pour
garantir des bornes correctes, notamment dans des modèles dynamiques.
- CALENDAR est idéale pour construire une table de dates standard : Dans un modèle de données, la table de dates doit être déconnectée de la source brute.
CALENDAR permet de générer ce référentiel de dates - indépendant, stable et orienté analytique - pouvant ensuite être lié aux tables de faits. Cela garantit une meilleure
gestion des filtres temporels et évite les trous de données.
- Elle fonctionne souvent en combinaison avec CALENDARAUTO : CALENDARAUTO détecte automatiquement les bornes temporelles dans le modèle, mais on perd la
maîtrise sur les dates extrêmes. CALENDAR, en revanche, laisse le contrôle complet à l'utilisateur sur la période couverte. On peut donc l'utiliser pour définir précisément
un horizon analytique (exemple 2018-2030), ce qui est indispensable dans certaines prévisions.
- CALENDAR peut servir de base à des tables dérivées : Une table générée par CALENDAR peut être enrichie avec ADDCOLUMNS,
SELECTCOLUMNS ou GENERATE pour produire un calendrier avancé incluant indicateurs fiscaux, cycles de production
ou numéros ISO de semaine. Cela transforme la table de dates simple en un outil analytique puissant alimentant la majorité des mesures DAX.
- Elle est cruciale pour les fonctions Time Intelligence : Beaucoup de fonctions temporelles (TOTALYTD,
SAMEPERIODLASTYEAR, DATESBETWEEN,...) attendent une vraie table de dates marquée par
MARKASDATE. CALENDAR fournit cette matière première fiable. Sans une table de dates continue et bien structurée, les calculs temporels peuvent
produire des résultats incohérents ou incomplets.
Dernière mise à jour : Vendredi, le 30 Mai 2025