La fonction RANKX dans Power BI est l’un des outils les plus puissants du langage DAX pour mettre en place des classements dynamiques, comparer les performances d’éléments dans un contexte donné et faciliter la prise de décision.
Dans cet article, nous vous expliquons pas à pas comment utiliser RANKX efficacement, quels sont ses cas d’usage avancés, ses pièges fréquents et comment l’intégrer à des modèles professionnels Power BI.
La fonction RANKX()
permet de calculer le rang d’un élément à l’intérieur d’un ensemble. Elle classe les éléments d’une table selon une expression de mesure ou un critère personnalisé.
Exemple simple :
RANKX(ALL(Produits), [Chiffre d’Affaires], , DESC, Dense)
Ici, on classe tous les produits par chiffre d’affaires, du plus élevé au plus faible, sans trous de rang (mode Dense).
RANKX est une fonction incontournable dans les cas suivants :
Créer des tops dynamiques : top 10 produits, top 5 clients par région, etc.
Mettre en place des indicateurs de performance relatifs (ex : position dans le classement).
Comparer un élément avec ses pairs, dans le contexte d’un segment ou d’une période.
Visualiser les évolutions de classement dans le temps (analyse glissante).
Détecter les changements de rangs significatifs d’un mois à l’autre.
Filtrer dynamiquement les 10 produits les plus performants sur le mois sélectionné par l’utilisateur. L’usage combiné de RANKX + CALCULATE + FILTER est ici essentiel.
Afficher le rang d’un produit dans sa catégorie ou dans une période donnée, avec variation par rapport au mois précédent grâce à la fonction PREVIOUSMONTH()
.
Comparer le rang actuel vs. rang précédent, détecter des améliorations ou des baisses de performance par des flèches ou couleurs conditionnelles.
Identifier les produits dont le rang varie fortement sans lien avec la moyenne globale, en croisant avec des indicateurs d’écart type ou de croissance.
❌ Utiliser RANKX sans table calendrier active ou sans contexte de filtre bien défini.
❌ Ne pas retirer les filtres existants avec ALL()
ou REMOVEFILTERS()
pour un classement global.
❌ Oublier le paramètre d’ordre (ASC
, DESC
) ou le mode (Dense
, Skip
) selon le besoin.
❌ Ne pas gérer les égalités de manière explicite (ex : produits avec même chiffre d’affaires).
Pour tirer le plein potentiel de RANKX()
, il est recommandé de l’associer à :
CALCULATE()
pour recontextualiser la mesure.
FILTER()
pour restreindre dynamiquement les données.
REMOVEFILTERS()
pour garantir un classement global malgré les segments.
SWITCH()
ou IF()
pour adapter le rendu selon la position ou l’élément.
👉 Découvrez la Partie 1 de la série vidéo dédiée à RANKX() sur Power BI :
https://youtu.be/lien-a-ajouter
💡 Cette vidéo est idéale pour maîtriser les bases, apprendre à construire un classement dynamique fiable, et comprendre les bonnes pratiques dans un modèle professionnel.
Pour créer des analyses dynamiques riches et orientées décision.
Pour comparer des éléments dans leur contexte (temporel, géographique, commercial).
Pour mettre en lumière des leaders et des suiveurs dans vos rapports.
Pour automatiser des analyses de classement sans avoir à recalculer manuellement.
Envie d’approfondir vos compétences en Time Intelligence, modélisation avancée et formules DAX ?
🎓 Accédez à la formation complète Power BI pour apprendre à créer des rapports intelligents, automatisés et centrés sur l’analyse décisionnelle :
👉 https://espritacademique.com/formations/power-bi-la-formation-complete/
💬 Vous avez une question, une difficulté ou un cas d’usage à partager ?
Laissez un commentaire ou contactez-moi pour échanger avec la communauté Power BI francophone !