Introduction à l'intelligence temporelle
Glissez pour afficher le menu
Les mesures DAX standard réagissent aux filtres actifs — un segment défini sur février retourne le total de février. L’intelligence temporelle va plus loin : elle répond à des questions nécessitant de sortir du filtre actuel et de comparer automatiquement à une autre période.
Pourquoi l’intelligence temporelle nécessite une table de dates dédiée
La table Sales contient une colonne Order Date. Il pourrait sembler logique d’utiliser directement les fonctions d’intelligence temporelle sur cette colonne — mais cela ne fonctionne pas de manière fiable, et la raison est fondamentale au fonctionnement de ces fonctions.
- Sales table — Order Date : contient uniquement les dates auxquelles des commandes ont été passées. Des lacunes existent dans le calendrier ;
- Dates table — Date : une ligne pour chaque jour du calendrier sans exception — un calendrier complet et continu. Aucune lacune. C’est ce dont les fonctions d’intelligence temporelle ont besoin.
Les fonctions d’intelligence temporelle font toujours référence à la table de dates dédiée — jamais à la colonne de date de la table de faits.
Marquage de la table des dates
Avant que toute fonction d’intelligence temporelle ne fonctionne, la table des dates doit être officiellement déclarée comme l’axe de dates du modèle. Power Pivot valide la colonne pour détecter les lacunes et les doublons à ce stade — si l’un d’eux est trouvé, une erreur est générée et doit être corrigée avant de continuer.
- Ouvrir Power Pivot → Gérer et naviguer vers la table
Datesen mode grille ; - Aller dans l’onglet Création du ruban Power Pivot ;
- Cliquer sur Marquer comme table de dates → Marquer comme table de dates ;
- Sélectionner la colonne Date dans la liste déroulante et cliquer sur OK ;
- Si aucune erreur n’apparaît, la table est validée et prête — les fonctions d’intelligence temporelle peuvent désormais s’y référer.
Si Power Pivot génère une erreur à cette étape, vérifiez la colonne Date pour détecter les dates en double ou les jours manquants. Ces deux problèmes doivent être corrigés dans les données sources avant de réessayer.
Les mesures d’intelligence temporelle
1. YTD — Cumul annuel
Total Sales YTD := TOTALYTD(SUM(Sales[Total]), Dates[Date])
Lorsque le tableau croisé dynamique est filtré sur un mois spécifique, Total Sales retourne uniquement ce mois. Total Sales YTD élargit le filtre pour couvrir du 1er janvier de l’année en cours jusqu’à la dernière date dans le contexte, en cumulant chaque mois jusqu’au mois actuel inclus.
2. LY — Même période l'année précédente
Total Sales LY := CALCULATE(SUM(Sales[Total]), SAMEPERIODLASTYEAR(Dates[Date]))
Lorsque le tableau croisé dynamique affiche février 2025, Total Sales LY retourne février 2024. Si aucune donnée de l'année précédente n'existe dans le modèle, la mesure retourne une valeur vide — ce qui est le comportement attendu, et non une erreur.
3. Croissance annuelle % — Croissance d'une année sur l'autre
YoY Growth % := DIVIDE([Total Sales] - [Total Sales LY], [Total Sales LY])
Combine les deux mesures précédentes — toutes deux référencées par leur nom, sans recalcul direct. Si Ventes totales ou Ventes totales LY est mis à jour, Croissance annuelle % prend automatiquement en compte la modification. Formater cette mesure en pourcentage dans Power Pivot.
Toujours référencer les mesures existantes par leur nom dans les mesures composites plutôt que de répéter le calcul sous-jacent. Si la logique de Total Sales change, YoY Growth % se met à jour automatiquement sans modification requise.
Tâche
Étape 1 - Tester vos mesures dans un tableau croisé dynamique
- Aller dans Insertion → Tableau croisé dynamique → Utiliser le modèle de données de ce classeur → OK.
- Ajouter
MonthName(depuis la table Dates) dans la zone Lignes. - Ajouter
Total Sales,Total Sales YTD,Total Sales LYetYoY Growth %(tous depuis la table Sales) dans la zone Valeurs.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion