Vous avez 12 mois de données de vente, de délais de livraison ou de taux d'occupation — et vous voulez comprendre d'un seul regard quels jours sont les plus performants, quelles semaines sont creuses, quels mois concentrent les pics.

Un graphique en courbes noie l'information. Un tableau de 365 lignes est illisible. Le Calendar Heatmap — une grille calendrier colorée par intensité — est la réponse. Dans ce guide, vous allez construire un Calendar Heatmap complet dans Power BI, sans visuel personnalisé tiers : uniquement une matrice native + DAX + mise en forme conditionnelle.

Pourquoi le Calendar Heatmap est un incontournable

Le Calendar Heatmap permet de répondre en 3 secondes à des questions qui prendraient 10 minutes autrement :

C'est particulièrement puissant dans les secteurs où la saisonnalité journalière compte : hôtellerie, logistique, retail, e-commerce, télécoms.

Prérequis : la table de dates

Tout commence par une table de dates complète dans votre modèle. Si elle n'existe pas encore, créez-la en DAX :

DimDate =
ADDCOLUMNS(
    CALENDAR(DATE(2024,1,1), DATE(2026,12,31)),
    "Année",        YEAR([Date]),
    "Mois",         MONTH([Date]),
    "Mois Nom",     FORMAT([Date], "MMM", "fr-FR"),
    "Semaine ISO",  WEEKNUM([Date], 2),
    "Jour Semaine", WEEKDAY([Date], 2),
    "Jour Nom",     FORMAT([Date], "ddd", "fr-FR"),
    "Trimestre",    "T" & ROUNDUP(MONTH([Date])/3, 0)
)

Marquez cette table comme Table de dates dans les paramètres du modèle, et reliez-la à votre table de faits via la colonne Date.

Étape 1 — Construire la mesure de base

Pour cet exemple, on mesure le chiffre d'affaires journalier. Adaptez selon votre cas d'usage :

CA Journalier =
CALCULATE(
    SUM(Commandes[Montant]),
    USERELATIONSHIP(DimDate[Date], Commandes[DateCommande])
)

Étape 2 — Créer la matrice calendrier

Insérez un visuel Matrice dans Power BI Desktop et configurez-le comme suit :

ZoneChamp
LignesDimDate[Jour Nom] (Lundi → Dimanche)
ColonnesDimDate[Semaine ISO]
Valeurs[CA Journalier]

Dans les options de la matrice : désactivez les en-têtes agrégés, réduisez la taille des cellules (largeur 28–32px), supprimez les totaux lignes et colonnes.

Étape 3 — Appliquer la mise en forme conditionnelle

C'est l'étape clé qui transforme un tableau ordinaire en heatmap :

  1. Cliquez sur la flèche ▼ de votre mesure dans la zone Valeurs
  2. Sélectionnez Mise en forme conditionnelle → Couleur d'arrière-plan
  3. Choisissez le format Échelle de couleur : valeur minimale blanc #FFFFFF, valeur maximale bleu foncé #1E3A8A
  4. Activez la même règle pour la Couleur de police : texte blanc quand la cellule est foncée

Résultat : les cellules les plus intenses ressortent visuellement, les jours creux s'effacent dans le fond clair.

Étape 4 — Trier les jours correctement (Lundi → Dimanche)

Par défaut, Power BI trie les jours alphabétiquement. Pour forcer l'ordre Lundi–Dimanche, ajoutez une colonne Ordre Jour dans la table DimDate :

Ordre Jour = WEEKDAY([Date], 2)
-- Retourne 1=Lundi, 7=Dimanche

Sélectionnez ensuite la colonne Jour Nom → Trier par colonne → Ordre Jour. Les jours s'affichent désormais dans le bon ordre dans la matrice.

Étape 5 — Ajouter un sélecteur d'année et de métrique

Pour rendre le visuel interactif, ajoutez un Segment sur DimDate[Année] en format boutons. Pour basculer entre plusieurs métriques, utilisez les Field Parameters de Power BI Desktop :

Métriques = {
    ("Chiffre d'affaires", NAMEOF('Commandes'[Montant]), 0),
    ("Nb commandes",       NAMEOF([Nb Commandes]),       1),
    ("Délai moyen (j)",    NAMEOF([Délai Moyen]),         2)
}

Variante avancée : afficher par mois / jour du mois

Pour une vue style GitHub Contributions (mois × jour du mois), configurez la matrice avec Mois Nom en lignes et Jour du Mois en colonnes. Ajoutez cette mesure pour gérer les jours inexistants (ex : 30 février) :

CA Heatmap Safe =
IF(
    ISBLANK([CA Journalier]),
    BLANK(),
    [CA Journalier]
)

Les cellules vides ne seront pas colorées — la grille reste propre et lisible.

Cas d'usage concrets

Hôtellerie — Visualiser les taux d'occupation sur 52 semaines pour identifier les périodes creuses à booster par des promotions ciblées.

Logistique portuaire — Détecter les journées à fort volume de mouvements conteneurs et anticiper les pics de charge sur les équipes de quai.

Finance / OPCVM — Analyser la volatilité journalière des VNI sur l'année et identifier des patterns de souscription/rachat.

Retail — Comparer les performances journalières semaine par semaine pour valider l'impact d'une opération promotionnelle.

Conclusion

Le Calendar Heatmap dans Power BI ne nécessite aucun visuel tiers payant. Avec une table de dates bien construite, deux colonnes DAX et la mise en forme conditionnelle native, vous obtenez un visuel professionnel qui condense 365 jours de données en un coup d'œil.

C'est l'un des visuels les plus appréciés lors de nos formations Power BI avancé chez ANAILYNIS — précisément parce qu'il déclenche immédiatement la réaction : « On peut faire ça nativement ? »

Vous souhaitez intégrer ce type de reporting dans vos tableaux de bord Power BI ? Contactez ANAILYNIS →

Besoin d'un accompagnement BI ?

ANAILYNIS vous accompagne dans la conception, le déploiement et la formation sur vos projets BI — Power BI, Oracle OAS, Data Warehouse.

Contacter ANAILYNIS →