Aller au contenu principal

Qu'est-ce que la fonction JEUCUBE ?

Définition
La fonction JEUCUBE définit un ensemble de membres ou de tuples à partir d'un cube OLAP via une expression MDX. Elle renvoie cet ensemble dans une cellule, qui peut ensuite être utilisé comme argument par d'autres fonctions cube.

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

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.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction JEUCUBE

1

connexion

: le nom exact de la connexion à ton cube OLAP, tel qu'il est défini dans l'onglet Données → Connexions de ton classeur

Ce 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.

2

set_expression

: une expression MDX (Multidimensional Expressions) qui définit l'ensemble de membres à récupérer

MDX 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.

3

[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.

4

[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.

5

[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.

Le savais-tu ?
Pour un classement Top N sans tri manuel, combine deux paramètres de JEUCUBE : tri_ordre = 4 (décroissant par valeur) et tri_par = 10 sortent les 10 meilleurs membres. Passe une référence de cellule à tri_par et l'utilisateur choisit lui-même le nombre.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =JEUCUBE(.
  2. 2
    En 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.
  3. 3
    En 2ᵉ argument : saisis l'expression qui définit le jeu, "[Ventes].[Produit].Children". Le suffixe .Children demande les membres de la dimension Produit, c'est-à-dire les trois produits distincts de la colonne et non chacune des quinze lignes de ventes.
  4. 4
    En 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.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=JEUCUBE("ThisWorkbookDataModel"; "[Ventes].[Produit].Children"; "Produits")
Explication
La cellule affiche 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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =JEUCUBE(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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é.
  5. 5
    En 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.
  6. 6
    En 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.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=JEUCUBE("ThisWorkbookDataModel"; "[Ventes].[Produit].Children"; "Top CA"; 2; "[Measures].[Total CA]")
Explication
La cellule affiche toujours la seule légende, 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).
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =JEUCUBE(.
  2. 2
    En 1er argument : saisis le nom de la connexion, "ThisWorkbookDataModel". C'est toujours le modèle de données interne du classeur.
  3. 3
    En 2ᵉ argument : saisis l'expression du jeu, "FILTER([Ventes].[Produit].Children,[Measures].[Total CA]>2500)". La fonction MDX FILTER prend 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.
  4. 4
    En 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.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=JEUCUBE("ThisWorkbookDataModel"; "FILTER([Ventes].[Produit].Children,[Measures].[Total CA]>2500)"; "Gros vendeurs")
Explication
L'expression 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.
Le conseil du pro
Nomme la cellule qui contient ton JEUCUBE (par exemple JeuCategories) via Formules puis Définir un nom. Tes ELEMENTJEUCUBE et VALEURCUBE s'écrivent alors =ELEMENTJEUCUBE(JeuCategories; 1) au lieu de recopier toute l'expression MDX : le classeur devient bien plus lisible et facile à maintenir.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreJEUCUBEMEMBRECUBEVALEURCUBEELEMENTJEUCUBE
RôleDéfinir un ensembleIdentifier un membre uniqueLire une valeur agrégéeLire un élément du jeu
RésultatEnsemble (Set)Membre uniqueValeur numériqueTexte (nom du membre)
Cas d'usage typiqueSélectionner des dimensionsFiltrer sur un membre précisLire un KPIAfficher la liste des membres
Complexité MDXMoyenne à élevéeMoyenneFaibleFaible
NiveauExpertAvancéAvancéIntermédiaire
FAQ

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.

Ressources

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