RANGMEMBRECUBE (CUBERANKEDMEMBER en anglais) retourne le membre au rang spécifié dans un jeu OLAP. Cette fonction est essentielle pour créer des Top N dynamiques, des classements de performance et des analyses de positionnement dans des rapports Business Intelligence connectés à SQL Server Analysis Services ou Power BI.
Concrètement, c'est elle qui identifie automatiquement le premier produit par chiffre d'affaires chaque semaine, qui liste les cinq meilleurs clients d'une période, ou qui affiche la région en queue de classement sans qu'on ait besoin de connaître le nombre total de membres dans le jeu.
Syntaxe de la fonction RANGMEMBRECUBE
=RANGMEMBRECUBE(connexion; expression_jeu; rang)La connexion doit être préalablement configurée dans ton classeur via Données > Connexions existantes. L'expression_jeu utilise la syntaxe MDX et doit référencer un jeu déjà trié côté cube pour que les rangs soient significatifs.
Comprendre chaque paramètre de la fonction RANGMEMBRECUBE
Les trois arguments s'enchaînent dans un ordre fixe et aucun n'est facultatif : d'abord le nom de ta connexion OLAP entre guillemets, ensuite l'expression MDX du jeu à parcourir, et enfin le rang voulu.
Le rang accepte des valeurs négatives : 1 te donne le premier membre, -1 le dernier, sans que tu aies à connaître la taille du jeu. Et comme ce dernier argument peut pointer vers une cellule, tu rends tout ton classement pilotable depuis une simple liste déroulante.
connexion
: le nom de la connexion au cube OLAP, tel qu'il est configuré dans ton classeurCe paramètre doit être une chaîne de texte entre guillemets, par exemple "VentesCube" ou "CRM_OLAP".
Pour vérifier les connexions disponibles, va dans Données > Connexions. Le nom est sensible à la casse et doit correspondre exactement à celui visible dans la liste.
Astuce : Pour vérifier le nom exact de ta connexion, ouvre l'onglet Données, clique sur Connexions, puis copie-colle le nom affiché dans ta formule. Une seule fappe de majuscule provoque une erreur #NOM?.
expression_jeu
: l'expression MDX (Multidimensional Expressions) qui définit le jeu de membres à classerC'est ce jeu qui sera parcouru pour trouver le membre à la position demandée. Tu peux référencer des dimensions, des hiérarchies, ou utiliser des fonctions MDX pour créer des jeux filtrés ou triés.
Exemples valides : "[Produit].[Tous les produits].Children", "[Client].[Top Clients]", "[Geo].[Region].Members".
Astuce : Le tri doit être défini dans l'expression MDX du cube (via la fonction MDX ORDER()) et non après dans Excel. Un jeu retourné dans l'ordre du cube se classera selon cet ordre, donc assure-toi que le cube trie déjà selon la mesure qui t'intéresse.
rang
: la position du membre à retourner dans le jeuLe rang 1 correspond au premier membre, 2 au deuxième, etc. Tu peux aussi utiliser des rangs négatifs : -1 pour le dernier membre, -2 pour l'avant-dernier, et ainsi de suite.
Tu peux référencer une cellule pour rendre le rang dynamique, par exemple =RANGMEMBRECUBE("VentesCube"; "[Produit].Children"; A1) où A1 contient le rang choisi par l'utilisateur.
Attention : Si le rang demandé dépasse le nombre de membres dans le jeu (par exemple rang 15 pour un jeu de 10 membres), Excel retourne l'erreur #REF!. Utilise MEMBRESENSEMBLECUBE pour compter les membres disponibles avant d'utiliser un rang variable.
Exemples pratiques pas à pas
Analyste commercial : Top 5 des produits les plus vendus
Tu gères le reporting des ventes et tu dois identifier chaque semaine les 5 produits phares. Avec RANGMEMBRECUBE, tu crées un classement automatique qui se met à jour dès que les données du cube changent.
En copiant la formule vers le bas en changeant uniquement le troisième argument (1, 2, 3...), tu construis un tableau de classement complet. Dès que le cube est actualisé, les produits se repositionnent sans aucune intervention de ta part.
| A | B | C | |
|---|---|---|---|
| 1 | Rang | Formule | Produit Top N |
| 2 | Top 1 | =RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";1) | Ordinateur Portable Pro |
| 3 | Top 2 | =RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";2) | Tablette Ultra 12 |
| 4 | Top 3 | =RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";3) | Smartphone Elite X |
| 5 | Top 4 | =RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";4) | Écran 4K Pro |
| 6 | Top 5 | =RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";5) | Clavier Mécanique RGB |
=RANGMEMBRECUBE("VentesCube";"[Produit].[Top Produits].Children";1)Astuce de pro : Combine cette formule avec VALEURCUBE pour afficher les chiffres de ventes à côté de chaque produit et créer un tableau complet de performance : RANGMEMBRECUBE te donne le membre, VALEURCUBE te donne sa valeur.
Responsable commercial : classement des meilleurs clients
Tu pilotes une équipe commerciale et tu veux suivre les meilleurs clients par CA. RANGMEMBRECUBE te permet de construire un tableau de bord VIP qui identifie automatiquement les clients stratégiques à privilégier.
Le classement évolue automatiquement selon les performances mensuelles, ce qui te permet d'ajuster ta stratégie commerciale sans jamais retrier manuellement tes données.
| A | B | C | |
|---|---|---|---|
| 1 | Position | Client | Statut |
| 2 | N°1 | =RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";1) | Gold VIP |
| 3 | N°2 | =RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";2) | Gold VIP |
| 4 | N°3 | =RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";3) | Gold VIP |
| 5 | N°4 | =RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";4) | Silver |
| 6 | N°5 | =RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";5) | Silver |
=RANGMEMBRECUBE("CRM_Cube";"[Client].[Clients par CA]";1)Astuce de pro : Utilise ce classement pour déclencher des actions : relance des Top 3, cadeaux VIP pour la fidélisation, ou alertes si un client stratégique descend dans le classement.
Manager régional : performance par région
Tu supervises plusieurs régions et tu dois identifier les zones à fort potentiel et celles nécessitant un soutien. RANGMEMBRECUBE te donne une vision claire du classement régional pour prioriser tes ressources.
Note l'utilisation du rang -1 pour récupérer directement la dernière région sans avoir besoin de connaître le nombre total de régions dans le jeu. Si de nouvelles régions sont ajoutées au cube, le rang -1 pointe toujours sur la dernière.
| A | B | C | |
|---|---|---|---|
| 1 | Rang | Région | Tendance |
| 2 | 1ère | =RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";1) | Île-de-France |
| 3 | 2ème | =RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";2) | Rhône-Alpes |
| 4 | 3ème | =RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";3) | PACA |
| 5 | 4ème | =RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";4) | Nouvelle-Aquitaine |
| 6 | Dernière | =RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";-1) | Corse |
=RANGMEMBRECUBE("Ventes";"[Geo].[Regions].Members";1)Astuce de pro : Compare les rangs actuels avec ceux du mois précédent pour détecter les régions en progression ou en difficulté. Tu peux stocker le rang précédent dans une colonne séparée et calculer l'évolution.
Analyste BI : tableau de bord interactif avec rang dynamique
Tu construis des tableaux de bord pour la direction et tu dois offrir de la flexibilité. RANGMEMBRECUBE te permet de créer des rapports où les utilisateurs peuvent choisir le Top N à afficher (Top 3, Top 5, Top 10...).
En référençant une cellule pour le rang (A1 dans cet exemple), tes utilisateurs peuvent explorer différents niveaux du classement sans modifier les formules. Ajoute une liste déroulante de validation de données pour la cellule de rang (1-10) et le rapport devient entièrement interactif.
| A | B | C | |
|---|---|---|---|
| 1 | Type de rang | Formule | Usage |
| 2 | Premier | =RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";1) | Leader du classement |
| 3 | Médian (5ème) | =RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";5) | Milieu de classement |
| 4 | Dernier | =RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";-1) | Bottom performer |
| 5 | Avant-dernier | =RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";-2) | Alerte performance |
| 6 | Variable | =RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";A1) | Contrôlé par cellule A1 |
=RANGMEMBRECUBE("Cube";"[Dimension].[Membres]";A1)Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction RANGMEMBRECUBE
Comme RANGMEMBRECUBE dialogue avec un cube externe, ses ratés viennent presque toujours de la liaison plutôt que d'une faute de calcul. Le #NOM? signale une connexion que ton classeur ne reconnaît pas (souvent une majuscule de travers dans le nom), et le #VALEUR! une expression MDX qui ne tient pas la route.
Les deux autres cas sont liés aux données : #REF! quand tu réclames un rang plus loin que le nombre de membres réellement présents, et une cellule vide ou #N/A quand le cube n'a pas été actualisé ou que le serveur est hors d'atteinte.
Erreur #NOM? : connexion introuvable
Excel ne trouve pas la connexion OLAP spécifiée dans le premier paramètre. Le nom est sensible à la casse ou ne correspond pas exactement à celui configuré dans le classeur.
Solution : Va dans Données > Connexions pour vérifier le nom exact de ta connexion OLAP. Copie-colle ce nom dans ta formule entre guillemets pour éviter toute erreur de frappe.
Erreur #REF! : rang hors limites
Tu demandes un rang qui n'existe pas dans le jeu. Par exemple, le rang 15 alors que le jeu ne contient que 10 membres.
Solution : Utilise MEMBRESENSEMBLECUBE pour compter les membres disponibles : =MEMBRESENSEMBLECUBE("Ventes"; "[Produit].[Top 10]"). Assure-toi que ton rang ne dépasse pas cette valeur, ou entoure la formule de SIERREUR.
Erreur #VALEUR! : expression MDX invalide
L'expression_jeu utilise une syntaxe MDX incorrecte ou référence une dimension qui n'existe pas dans le cube. Une parenthèse manquante ou un nom de dimension mal orthographié suffit.
Solution : Teste ton expression MDX dans SQL Server Management Studio ou dans l'outil de requête de ton serveur OLAP avant de l'utiliser dans Excel. Vérifie que les noms de dimensions et hiérarchies sont orthographiés exactement comme dans le cube.
Résultat vide ou #N/A : cube non actualisé
Les données du cube ne sont pas à jour ou la connexion n'est pas active. Excel retourne #N/A ou une cellule vide.
Solution : Actualise ta connexion OLAP via Données > Actualiser tout. Vérifie aussi que le serveur OLAP est accessible depuis ton réseau et que tes identifiants de connexion sont valides.
Questions fréquentes sur la fonction RANGMEMBRECUBE
Comment fonctionne le paramètre rang dans RANGMEMBRECUBE ?
Le rang commence à 1 pour le premier membre du jeu. Tu peux utiliser un rang positif pour classer depuis le début (1, 2, 3...), ou un rang négatif pour classer depuis la fin du jeu (-1 pour le dernier, -2 pour l'avant-dernier, etc.).
Quelle est la différence entre RANGMEMBRECUBE et MEMBRECUBE ?
MEMBRECUBE retourne un membre spécifique par son nom ou chemin exact, tandis que RANGMEMBRECUBE récupère un membre selon sa position dans un classement dynamique du jeu OLAP. RANGMEMBRECUBE est idéal pour créer des Top N ou des classements qui évoluent avec les données.
Puis-je créer un Top 10 dynamique avec RANGMEMBRECUBE ?
Oui. Tu utilises RANGMEMBRECUBE avec des rangs de 1 à 10 pour récupérer les dix premiers membres d'un jeu trié. Combine-le avec VALEURCUBE pour afficher les valeurs associées à chaque membre et créer un tableau de classement complet qui se met à jour automatiquement.
Comment éviter les erreurs #REF! avec les rangs ?
L'erreur #REF! apparaît quand le rang demandé dépasse le nombre de membres dans le jeu. Utilise MEMBRESENSEMBLECUBE pour compter les membres disponibles et valider ton rang. Tu peux aussi entourer la formule de SIERREUR(...; "") pour afficher une cellule vide à la place de l'erreur.
RANGMEMBRECUBE fonctionne-t-il avec tous les types de connexions OLAP ?
RANGMEMBRECUBE fonctionne avec toutes les connexions OLAP configurées dans Excel (SQL Server Analysis Services, Power BI, etc.). Assure-toi simplement que ta connexion est active et que le cube contient bien les dimensions et mesures nécessaires.
Pour aller plus loin
Les fonctions similaires : MEMBRECUBE, JEUCUBE, VALEURCUBE, MEMBRECUBE, RANG
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois
