Qu'est-ce que la fonction JEUCUBE ?
JEUCUBE (CUBESET en anglais) t'évite de retaper à la main la liste des membres d'une dimension à chaque fois que ton cube OLAP évolue : tu définis l'ensemble une seule fois, et il reste connecté à la source. C'est le point de départ obligé dès que tu veux construire un rapport BI qui se met à jour tout seul plutôt qu'une liste figée collée dans une cellule.
Si tu travailles avec Analysis Services, Power BI ou tout autre source OLAP, JEUCUBE est l'outil qui te permet de piloter finement quels membres tu veux analyser, puis de les passer aux autres fonctions cube (VALEURCUBE, ELEMENTJEUCUBE, NOMBREELEMENTSCUBE) pour construire des rapports BI entièrement dynamiques sans sortir d'Excel.
Syntaxe
=JEUCUBE(connexion; set_expression; [légende]; [tri_ordre]; [tri_par])Clique sur un argument pour aller à son explication.
JEUCUBE ne retourne pas directement les données dans les cellules adjacentes : elle stocke l'ensemble dans une cellule. Pour lire ses éléments, utilise ELEMENTJEUCUBE ; pour en compter le nombre, NOMBREELEMENTSCUBE ; pour en agréger les valeurs, VALEURCUBE.

Comprendre chaque paramètre de la fonction JEUCUBE
connexion
: le nom exact de la connexion à ton cube OLAP, tel qu'il est défini dans l'onglet Données → Connexions de ton classeurCe paramètre est sensible à la casse et doit correspondre mot pour mot.
Exemples valides : "VentesCube", "FinanceOLAP". Retrouve le nom exact dans le gestionnaire de connexions avant de l'écrire dans ta formule.
set_expression
: une expression MDX (Multidimensional Expressions) qui définit l'ensemble de membres à récupérerMDX est le langage de requête des cubes OLAP, similaire au SQL pour les bases relationnelles.
Exemples courants : "[Produit].[Catégorie].Members" (tous les membres d'une hiérarchie), "[Compte].[Type].&[Revenu].Children" (les enfants d'un membre), "Filter([Région].[Pays].Members, [Measures].[CA] > 100000)" (filtrage conditionnel).
Attention : Les noms de dimensions et hiérarchies sont sensibles à la casse et doivent correspondre exactement à la structure du cube. Teste ton expression MDX dans SQL Server Management Studio ou un outil OLAP avant de la coller dans Excel.
[légende]
: le texte descriptif qui s'affiche dans la cellule contenant le jeu(facultatif)Comme un jeu cube n'affiche pas directement ses membres dans la cellule, la légende sert d'étiquette lisible pour identifier le contenu.
Exemples : "Toutes catégories", "Top 10 clients", "Zones performantes". Si tu omets ce paramètre, Excel affiche un texte générique.
[tri_ordre]
: définit l'ordre de tri des membres dans le jeu(facultatif)Les valeurs possibles sont : 0 (aucun tri, ordre naturel du cube), 1 (croissant par légende, A→Z), 2 (décroissant par légende, Z→A), 3 (croissant par valeur mesurée), 4 (décroissant par valeur mesurée, pour les Top N).
Les tris par valeur (3 ou 4) nécessitent que l'expression MDX inclue une mesure, sinon Excel retourne une erreur.
[tri_par]
: limite le nombre maximal d'éléments retournés dans le jeu(facultatif)En combinaison avec tri_ordre, ce paramètre crée des classements Top N ou Bottom N.
Par exemple, tri_ordre = 4; tri_par = 10 retourne les 10 membres ayant les valeurs les plus élevées. Change tri_par en référence de cellule pour rendre le nombre configurable par l'utilisateur.

Exemples pratiques pas à pas
Comment définir un jeu de membres avec la fonction JEUCUBE
Tes ventes sont chargées dans le modèle de données et tu veux travailler sur la liste des produits qu'il contient. Retaper cette liste à la main dans un coin de la feuille la condamne à devenir fausse dès qu'un produit est ajouté ou renommé à la source. La fonction JEUCUBE constitue cette liste depuis le modèle, sous la forme d'un jeu qui tient dans une cellule.
- 1Dans une cellule, écris
=JEUCUBE(. - 2En 1er argument : saisis le nom exact de la connexion à interroger,
"ThisWorkbookDataModel". C'est le nom réservé du modèle de données interne au classeur, celui dans lequel tes ventes sont déjà chargées. - 3En 2ᵉ argument : saisis l'expression qui définit le jeu,
"[Ventes].[Produit].Children". Le suffixe.Childrendemande les membres de la dimension Produit, c'est-à-dire les trois produits distincts de la colonne et non chacune des quinze lignes de ventes. - 4En 3ᵉ argument : saisis l'étiquette qui s'affichera dans la cellule,
"Produits". Elle sert seulement à nommer le jeu de façon lisible, car la cellule n'affiche jamais la liste des membres qu'il contient. - 5Ferme la parenthèse et appuie sur Entrée.
=JEUCUBE("ThisWorkbookDataModel"; "[Ventes].[Produit].Children"; "Produits")Produits, c'est-à-dire la légende que tu as choisie, et surtout pas la liste des membres : la fonction JEUCUBE range le jeu entier derrière cette étiquette. Le jeu vit dans la cellule et ne se lit qu'à travers les autres fonctions cube, comme la fonction NBJEUCUBE qui en compte les membres.Comment classer un jeu par une mesure avec la fonction JEUCUBE
La liste des produits ne t'avance pas si elle sort dans un ordre quelconque : ce que tu prépares, c'est un podium des meilleures ventes pour la réunion commerciale. Trier après coup dans la feuille casserait à la première actualisation du modèle. La fonction JEUCUBE sait constituer le jeu déjà classé sur la mesure de ton choix.
- 1Dans une cellule, écris
=JEUCUBE(. - 2En 1er argument : saisis le nom de la connexion,
"ThisWorkbookDataModel". C'est le même modèle de données interne au classeur que dans l'exemple précédent. - 3En 2ᵉ argument : saisis l'expression du jeu,
"[Ventes].[Produit].Children". Le point de départ ne change pas par rapport à l'exemple précédent, seul son ordre va être imposé par les deux arguments suivants. - 4En 3ᵉ argument : saisis l'étiquette affichée dans la cellule,
"Top CA". C'est le seul texte que la cellule montre, même une fois le jeu trié. - 5En 4ᵉ argument : saisis le code de tri,
2. Il range le jeu par valeur décroissante, du plus gros chiffre d'affaires au plus petit, ce qui prépare directement le podium recherché. Un tri par valeur comme celui-ci s'appuie sur une mesure, que tu passes juste après. - 6En 5ᵉ argument : saisis la mesure qui sert de critère au tri,
"[Measures].[Total CA]". C'est elle que le classement décroissant compare, et elle devient obligatoire dès que le tri porte sur une valeur plutôt que sur le texte. - 7Ferme la parenthèse et appuie sur Entrée.
=JEUCUBE("ThisWorkbookDataModel"; "[Ventes].[Produit].Children"; "Top CA"; 2; "[Measures].[Total CA]")Top CA, mais le jeu qu'elle contient est désormais ordonné. Le tri est fait côté modèle, une fois, et toutes les fonctions qui liront ce jeu en hériteront : la fonction RANGMEMBRECUBE y trouve Moniteur au rang 1, puisque c'est lui qui pèse le plus (5000).Comment ne garder que les membres au-dessus d'un seuil avec la fonction JEUCUBE
Ton comité ne veut pas la liste entière des produits, seulement ceux qui pèsent vraiment dans le chiffre d'affaires. Sortir tout le catalogue pour en écarter la moitié ensuite encombre la feuille et t'oblige à refaire le tri à chaque actualisation. La fonction JEUCUBE accepte une condition directement dans l'expression du jeu.
- 1Dans une cellule, écris
=JEUCUBE(. - 2En 1er argument : saisis le nom de la connexion,
"ThisWorkbookDataModel". C'est toujours le modèle de données interne du classeur. - 3En 2ᵉ argument : saisis l'expression du jeu,
"FILTER([Ventes].[Produit].Children,[Measures].[Total CA]>2500)". La fonction MDXFILTERprend d'abord le jeu à réduire, puis la condition à remplir, ici un chiffre d'affaires supérieur à2500. Ses deux arguments se séparent par une virgule et non par un point-virgule, car à l'intérieur des guillemets tu écris du MDX, qui ignore le séparateur de listes de ta version d'Excel. - 4En 3ᵉ argument : saisis l'étiquette affichée dans la cellule,
"Gros vendeurs". Elle devient le seul texte visible, alors que le jeu filtré reste rangé derrière elle. - 5Ferme la parenthèse et appuie sur Entrée.
=JEUCUBE("ThisWorkbookDataModel"; "FILTER([Ventes].[Produit].Children,[Measures].[Total CA]>2500)"; "Gros vendeurs")FILTER s'exécute côté modèle et ne laisse passer que les produits dont le Total CA dépasse 2500, ici l'écran (5000) et le clavier (2000). La souris (1000) reste dehors, et la fonction NBJEUCUBE confirme que le jeu ne compte plus que 2 membres. Le seuil est appliqué avant qu'Excel ne voie quoi que ce soit.
Les erreurs fréquentes avec la fonction JEUCUBE
Erreur #NOM? - Connexion cube non trouvée
Excel ne trouve pas la connexion spécifiée dans le paramètre connexion. Le nom est mal orthographié, une majuscule manque, ou la connexion a été supprimée du classeur.
Solution : Ouvre Données → Connexions et copie-colle le nom exact dans ta formule. Le paramètre est sensible à la casse : "VentesCube" et "ventescube" sont différents.
Erreur #VALEUR! - Expression MDX invalide
L'expression MDX contient une erreur de syntaxe ou référence des dimensions ou membres qui n'existent pas dans le cube. Les noms de dimensions doivent être entre crochets [] et la casse doit correspondre.
Solution : Teste ton expression MDX dans un outil dédié (SQL Server Management Studio, MDX Studio) avant de la coller dans Excel. Vérifie que chaque [Dimension].[Hiérarchie] correspond exactement à la structure du cube.
Tri par valeur sans mesure (résultat incorrect ou erreur)
Tu as spécifié tri_ordre = 3 ou 4 (tri par valeur) mais ton expression MDX ne contient pas de mesure. Excel ne sait pas quelle valeur utiliser pour ordonner les membres.
Solution : Inclus une mesure dans ton expression : "([Produit].Members, [Measures].[CA])". Ou change pour un tri par légende (tri_ordre = 1 ou 2) si tu n'as pas besoin de trier par valeur numérique.
Performances lentes avec un jeu très volumineux
JEUCUBE récupère des milliers de membres depuis le serveur OLAP, ce qui ralentit le calcul et l'actualisation du classeur, surtout quand plusieurs formules référencent le même jeu.
Solution : Utilise tri_par pour limiter le nombre d'éléments retournés. Filtre ton jeu en MDX avec la fonction Filter pour ne récupérer que les membres pertinents. Active le calcul manuel (Formules → Options de calcul → Manuel) pour les classeurs avec beaucoup de fonctions cube.
Connexion perdue après partage du fichier
La connexion OLAP pointe vers un chemin local ou un serveur inaccessible aux autres utilisateurs. Le fichier fonctionne sur ton poste mais retourne des erreurs chez tes collègues.
Solution : Configure les connexions vers des serveurs réseau accessibles à tous les utilisateurs. Utilise des chemins UNC (\\serveur\dossier) plutôt que des lettres de lecteur mappées. Documente les prérequis de connexion dans une feuille README du classeur.

JEUCUBE vs MEMBRECUBE vs VALEURCUBE vs ELEMENTJEUCUBE
Ces quatre fonctions se complètent : JEUCUBE définit un ensemble, ELEMENTJEUCUBE en lit les membres un par un, VALEURCUBE en agrège les valeurs, et MEMBRECUBE identifie un membre unique. Dans un rapport OLAP typique, elles s'enchaînent.
| Critère | JEUCUBE | MEMBRECUBE | VALEURCUBE | ELEMENTJEUCUBE |
|---|---|---|---|---|
| Rôle | Définir un ensemble | Identifier un membre unique | Lire une valeur agrégée | Lire un élément du jeu |
| Résultat | Ensemble (Set) | Membre unique | Valeur numérique | Texte (nom du membre) |
| Cas d'usage typique | Sélectionner des dimensions | Filtrer sur un membre précis | Lire un KPI | Afficher la liste des membres |
| Complexité MDX | Moyenne à élevée | Moyenne | Faible | Faible |
| Niveau | Expert | Avancé | Avancé | Intermédiaire |
Questions fréquentes
JEUCUBE te permet de définir un ensemble de membres ou de tuples à partir d'un cube OLAP connecté à ton classeur. Elle est fondamentale pour l'analyse multidimensionnelle et la création de rapports BI dynamiques directement dans Excel. Elle ne retourne pas les données directement dans les cellules adjacentes : elle crée un objet "jeu" dans une cellule, que tu passes ensuite aux fonctions ELEMENTJEUCUBE, NOMBREELEMENTSCUBE ou VALEURCUBE pour lire son contenu.
JEUCUBE définit un ensemble de membres ou de tuples (c'est la fondation). VALEURCUBE récupère une valeur agrégée unique depuis le cube. MEMBRECUBE identifie un membre spécifique. ELEMENTJEUCUBE lit un membre particulier dans un jeu défini par JEUCUBE. Dans un rapport typique, tu crées d'abord le jeu avec JEUCUBE, puis tu parcours ses membres avec ELEMENTJEUCUBE et leurs valeurs avec VALEURCUBE.
Utilise le paramètre tri_ordre : 0 (aucun tri, ordre naturel), 1 (croissant par légende), 2 (décroissant par légende), 3 (croissant par valeur), 4 (décroissant par valeur).
Pour un tri par valeur (3 ou 4), ton expression MDX doit inclure une mesure. Le tri par valeur décroissant (4) combiné avec tri_par = 10 crée directement un classement Top 10.
Oui, le paramètre tri_par limite le nombre d'éléments dans le jeu. Pour un Top 5, utilise tri_ordre = 4 (décroissant par valeur) et tri_par = 5.
Rendre tri_par dynamique en le liant à une cellule (tri_par = $F$1) permet à l'utilisateur de configurer lui-même le nombre sans toucher à la formule.
Vérifie dans Données → Connexions que ta connexion est active et que son nom correspond exactement à ce que tu as écrit dans JEUCUBE (sensible à la casse). Une erreur #NOM? indique que la connexion n'est pas trouvée. Une erreur #VALEUR! signale généralement une expression MDX incorrecte. Teste d'abord ton MDX dans un outil dédié (SSMS, Azure Data Studio) avant de l'insérer dans Excel.
Pas directement dans une seule formule JEUCUBE. En revanche, MDX permet de combiner des ensembles via l'opérateur * (produit cartésien) ou + (union) directement dans l'argument set_expression.
Par exemple, "[Produit].[Catégorie].Members * [Région].[Pays].Members" crée un ensemble croisé de toutes les catégories par tous les pays, ce qui permet des analyses matricielles sophistiquées.
Pour aller plus loin
Continue sur ta lancée après la fonction JEUCUBE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



