Qu'est-ce que la fonction NBJEUCUBE ?
Tu sors NBJEUCUBE (CUBESETCOUNT en anglais) avant de lancer un calcul sur un jeu OLAP, parce qu'un jeu vide se comporte comme un jeu normal dans la feuille et ne lève aucune alerte de lui-même. Elle sert de garde-fou silencieux : elle repère une connexion tombée ou une requête MDX trop filtrante avant que ça ne se traduise par des totaux à zéro qu'on prendrait pour argent comptant.
Si tu travailles avec Analysis Services, Power BI ou tout autre source OLAP, NBJEUCUBE te permet de contrôler la dimension de tes jeux dynamiquement : afficher un titre de rapport adapté ("Analyse de 24 produits"), bloquer un calcul si le jeu est vide, ou détecter des problèmes de connexion avant qu'ils ne se propagent dans tout ton tableau de bord.

Comprendre chaque paramètre de la fonction NBJEUCUBE
ensemble
: la référence à une cellule contenant un jeu OLAP créé par JEUCUBE ou retourné par une autre fonction cubeCe paramètre est le seul argument de la fonction et doit pointer vers un jeu valide.
Par exemple, si A1 contient =JEUCUBE("Ventes"; "[Produit].[Catégorie].Members"), alors =NBJEUCUBE(A1) retourne le nombre de catégories dans ce jeu.
Attention : Si tu passes une cellule contenant du texte, un nombre ou une formule non-OLAP, NBJEUCUBE retourne #VALEUR!. Vérifie toujours que la cellule source contient bien un jeu créé par JEUCUBE.

Exemples pratiques pas à pas
Comment compter le nombre de membres d'un jeu avec la fonction NBJEUCUBE
Le jeu créé par la fonction JEUCUBE n'affiche qu'une étiquette, et rien dans la cellule ne dit combien de membres se cachent derrière. Ton rapport doit pourtant annoncer « 3 produits analysés » en titre, et rester juste le jour où le catalogue s'agrandit. La fonction NBJEUCUBE rend la taille du jeu.
- 1Dans une cellule, écris
=NBJEUCUBE(. - 2En 1er argument : clique sur la cellule qui contient le jeu,
F4. Elle n'affiche que l'étiquetteProduits, car la fonction JEUCUBE qui l'occupe range le jeu OLAP derrière ce simple libellé. NBJEUCUBE attend une cellule de ce genre et non une plage de la feuille. Pointée sur du texte ordinaire ou sur une cellule vide, elle renvoie l'erreur#VALEUR!. - 3Ferme la parenthèse et appuie sur Entrée.
=NBJEUCUBE(F4)3 : le modèle ne connaît que trois produits (Clavier, Souris et Moniteur), même si la table compte six lignes de ventes. Le suffixe .Children du jeu liste les membres distincts de la dimension, donc le compte porte sur les produits et jamais sur les ventes.Comment compter le nombre de membres retenus par un filtre en combinant la fonction NBJEUCUBE et la fonction JEUCUBE
Ton tableau de bord ne suit que les produits dont le chiffre d'affaires dépasse un seuil, et le nombre de produits concernés est justement l'indicateur qui intéresse ton comité. Ce nombre bouge à chaque actualisation du modèle, donc l'écrire à la main n'a aucun sens. La fonction NBJEUCUBE compte les membres qui ont survécu au filtre.
- 1Dans une cellule, écris
=NBJEUCUBE(. - 2En 1er argument : clique sur la cellule qui porte le jeu filtré,
F4. La fonction JEUCUBE y affiche l'étiquetteGros vendeurset cache derrière elle la condition MDX qui ne retient que les produits au-delà du seuil. La formule de comptage ne change pas d'un caractère par rapport au jeu complet, car c'est le jeu visé qui porte le filtre et NBJEUCUBE se contente de compter ce qu'on lui donne. - 3Ferme la parenthèse et appuie sur Entrée.
=NBJEUCUBE(F4)2 là où elle rendait 3 sur le jeu complet : le moniteur (8000) et le clavier (4000) passent le seuil, la souris (2000) reste dehors. Compter le jeu filtré est le seul moyen de savoir ce que la condition a réellement retenu, puisque la cellule du jeu, elle, affiche toujours la même étiquette.Comment bloquer un rapport sur un jeu vide en combinant la fonction NBJEUCUBE et la fonction SI
Un jeu peut revenir vide sans que rien ne le signale, parce que la connexion au modèle est tombée ou parce que la requête filtre tout. Les chiffres qui en découlent tombent alors à zéro et se lisent comme un mauvais mois plutôt que comme une panne, ce qui est la pire des situations en réunion. La fonction NBJEUCUBE sert ici de garde-fou avant l'affichage.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui compte les membres du jeu et les compare à zéro,
NBJEUCUBE(F4)>0. Tout se joue sur ce0, car un jeu vide y répond par0sans lever la moindre erreur. C'est cette valeur silencieuse que la condition doit intercepter. - 3En 2ᵉ argument : saisis le texte affiché quand le jeu contient au moins un membre,
"Rapport disponible". C'est là que tu brancherais le vrai calcul du rapport. Les guillemets sont obligatoires pour qu'Excel affiche ce texte tel quel. - 4En 3ᵉ argument : saisis le texte de repli affiché quand le comptage tombe à
0,"Jeu vide". Ce message remplace le zéro trompeur par un constat lisible, qui prévient ton lecteur qu'il n'y a rien à analyser plutôt que de lui montrer un total faux. - 5Ferme la parenthèse et appuie sur Entrée.
=SI(NBJEUCUBE(F4)>0; "Rapport disponible"; "Jeu vide")0 sans lever la moindre erreur, et la fonction SI bascule sur son message de repli. C'est ce 0 silencieux qu'il faut intercepter : un jeu vide ressemble à un jeu normal dans la feuille, et les calculs qui en dépendent afficheraient des totaux à zéro comme s'ils étaient vrais.
Les erreurs fréquentes avec la fonction NBJEUCUBE
Avec NBJEUCUBE, le souci ne vient presque jamais de la fonction elle-même mais de ce que tu lui donnes à compter. Le cas que tu croiseras le plus souvent, c'est le #VALEUR! : tu as pointé une cellule qui contient du texte, un nombre ou une formule classique au lieu d'un vrai jeu créé par JEUCUBE.
Les deux autres pièges sont plus sournois : un 0 qui tombe sans prévenir (jeu vide, cube pas actualisé ou MDX qui filtre tout) et un classeur qui rame dès que tu répètes NBJEUCUBE sur le même jeu, chaque appel relançant une requête vers le cube.
Erreur #VALEUR! : la cellule ne contient pas un jeu OLAP
NBJEUCUBE ne fonctionne qu'avec des jeux OLAP créés par JEUCUBE ou retournés par d'autres fonctions cube. Si tu passes une cellule contenant du texte, un nombre ou une formule standard, tu obtiens #VALEUR!.
Solution : Vérifie que la cellule référencée contient bien un jeu créé par JEUCUBE. Utilise =ESTREF(A1) pour vérifier que la référence est valide, et assure-toi que la formule JEUCUBE dans A1 ne retourne pas elle-même une erreur.
NBJEUCUBE retourne 0 de manière inattendue
Le jeu OLAP ne contient aucun élément, soit parce que la connexion n'a pas de données correspondantes, soit parce que l'expression MDX dans JEUCUBE filtre tous les membres, soit parce que le cube n'est pas actualisé.
Solution : Actualise ta connexion OLAP via Données → Actualiser tout. Vérifie l'expression MDX dans ton JEUCUBE pour t'assurer qu'elle retourne bien des membres. Utilise un outil MDX (SSMS) pour tester l'expression hors d'Excel.
Performances lentes quand NBJEUCUBE est répété sur le même jeu
Chaque appel à NBJEUCUBE déclenche une requête vers le cube OLAP. Si plusieurs formules appellent NBJEUCUBE sur le même jeu, tu multiplies les requêtes inutilement, ce qui ralentit le classeur.
Solution : Calcule NBJEUCUBE une seule fois dans une cellule dédiée (par exemple B1 = =NBJEUCUBE(A1)) et référence B1 dans les autres formules. Active aussi le calcul manuel (Formules → Options de calcul → Manuel) pour les classeurs avec beaucoup de fonctions cube.

NBJEUCUBE vs NB vs JEUCUBE vs VALEURCUBE
Tu prends NBJEUCUBE quand tu veux savoir combien d'éléments contient un jeu OLAP, pas pour compter des cellules d'une feuille : pour ça c'est NB, qui ne sait pas lire un cube. JEUCUBE est l'étape d'avant, celle qui fabrique le jeu à partir d'une expression MDX, et NBJEUCUBE vient ensuite le mesurer.
Dès que tu cherches une valeur agrégée plutôt qu'un décompte (un chiffre d'affaires, un KPI), c'est VALEURCUBE qu'il te faut. En pratique, les trois fonctions cube s'enchaînent : JEUCUBE crée, NBJEUCUBE dimensionne, VALEURCUBE lit.
| Critère | NBJEUCUBE | NB | JEUCUBE | VALEURCUBE |
|---|---|---|---|---|
| Rôle | Compter les éléments d'un jeu OLAP | Compter les cellules numériques | Créer un jeu OLAP | Lire une valeur agrégée du cube |
| Type de données | Jeux OLAP uniquement | Plages Excel classiques | Expressions MDX | Membres et mesures OLAP |
| Résultat | Entier (nombre d'éléments) | Entier (nombre de cellules) | Jeu (objet cube) | Valeur numérique |
| Cas d'usage typique | Valider la taille d'un jeu | Compter dans une plage standard | Définir les dimensions à analyser | Lire un KPI ou une mesure |
Questions fréquentes
Oui, NBJEUCUBE compte les éléments de n'importe quel jeu créé avec JEUCUBE ou retourné par d'autres fonctions cube. Elle est compatible avec tous les cubes de données connectés à Excel (Analysis Services, Power BI, etc.).
Si le jeu ne contient aucun élément, NBJEUCUBE retourne 0. Si la référence est invalide ou ne pointe pas vers un jeu OLAP, elle retourne l'erreur #VALEUR!. C'est pourquoi il est recommandé de toujours valider le résultat avec =SI(NBJEUCUBE(A1)>0; ...; "Pas de données") avant d'utiliser le jeu dans d'autres calculs.
Oui, c'est l'un de ses usages les plus courants. Tu peux combiner NBJEUCUBE avec SI pour créer des validations conditionnelles robustes : =SI(NBJEUCUBE(A1)>=10; VALEURCUBE(...); "Données insuffisantes") évite de lancer un calcul sur un jeu trop petit ou vide.
NBJEUCUBE est spécialement conçue pour compter les éléments dans un jeu OLAP (cube de données), tandis que NB compte les cellules contenant des nombres dans une plage classique. Tu ne peux pas utiliser NB sur un jeu OLAP, ni NBJEUCUBE sur une plage normale.
Pour optimiser les performances, évite de recalculer NBJEUCUBE plusieurs fois pour le même jeu. Stocke le résultat dans une cellule séparée et référence-la dans tes autres formules. Limite aussi la taille des jeux OLAP en filtrant les données en amont avec JEUCUBE.
Oui, NBJEUCUBE retourne un entier standard que tu peux utiliser dans n'importe quelle formule. =SI(NBJEUCUBE(A1)>0; "Jeu valide"; "Jeu vide"), =SIERREUR(NBJEUCUBE(A1); 0) ou ="Analyse de "&NBJEUCUBE(A1)&" éléments" fonctionnent tous parfaitement.
Pour aller plus loin
Continue sur ta lancée après la fonction NBJEUCUBE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



