Aller au contenu principal

Qu'est-ce que la fonction PROPRIETEMEMBRECUBE ?

Définition
La fonction PROPRIETEMEMBRECUBE interroge un cube OLAP pour retourner la valeur d'une propriété (attribut) d'un membre d'une dimension. Elle nécessite une connexion active à un cube OLAP configurée dans le classeur.

PROPRIETEMEMBRECUBE (CUBEMEMBERPROPERTY en anglais) te sert quand ton rapport doit refléter un attribut qui vit dans le cube OLAP lui-même, comme un code produit ou une région, et que tu veux qu'il reste à jour tout seul plutôt que de le retaper à chaque changement de structure. C'est la fonction à utiliser dès qu'une métadonnée doit rester connectée en direct à sa source.

Concrètement, c'est elle qui te permet d'afficher automatiquement le responsable commercial associé à chaque client dans ton rapport de ventes, sans maintenir une table de correspondance séparée. Elle se connecte directement au serveur OLAP et récupère la propriété demandée en temps réel. Combine-la avec MEMBRECUBE pour cibler le bon membre et avec VALEURCUBE pour afficher les chiffres associés.

Syntaxe

=PROPRIETEMEMBRECUBE(connexion; expression_membre; propriété)

Clique sur un argument pour aller à son explication.

La connexion doit être préalablement configurée dans ton classeur via Données > Connexions existantes. Les noms de propriétés sont sensibles à la casse et doivent correspondre exactement à ceux définis dans le cube OLAP.

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

Comprendre chaque paramètre de la fonction PROPRIETEMEMBRECUBE

Les trois arguments s'enchaînent dans cet ordre : d'abord la connexion au cube, ensuite l'expression MDX qui pointe vers le membre, enfin le nom de la propriété à extraire. Aucun n'est facultatif, il faut les fournir tous les trois.

Deux d'entre eux sont sensibles à la casse : le nom de la connexion et le nom de la propriété. Un "Manager" écrit "manager" ne renverra pas la même chose, voire une erreur.

1

connexion

: le nom de la connexion au cube OLAP, tel qu'il est configuré dans ton classeur

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

2

expression_membre

: l'expression MDX (Multidimensional Expressions) qui identifie de manière unique le membre dont tu veux extraire la propriété

Elle utilise la notation à crochets pour décrire la hiérarchie du cube.

Exemples valides : "[Client].[Paris]", "[Produit].[Ordinateur Pro]", "[Magasin].[Lyon Part-Dieu]". Tu peux aussi référencer une cellule contenant le résultat d'une formule MEMBRECUBE pour rendre l'expression dynamique.

3

propriété

: le nom de la propriété à extraire pour ce membre

Les propriétés disponibles dépendent entièrement de la structure du cube OLAP et de ce qui a été défini lors de la création des dimensions.

Propriétés typiques : "Manager", "CodeInterne", "Region", "Email", "Telephone", "SeuilAlerte", "StatutApprobation". Consulte la documentation de ton cube ou les outils d'analyse OLAP pour connaître la liste exacte.

Attention : Le nom de propriété est sensible à la casse. "Manager" et "manager" donnent des résultats différents, voire une erreur si la casse ne correspond pas exactement à la définition dans le cube.

Le conseil du pro
Le nom de la propriété est sensible à la casse : « Manager » et « manager » ne renvoient pas la même chose, et un simple écart de casse suffit à sortir une erreur. Copie-colle le nom exact depuis la définition du cube plutôt que de le retaper de mémoire.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Analyste commercial : afficher le manager de chaque client

Tu gères le reporting commercial et tu dois afficher le nom du responsable commercial pour chaque client dans ton tableau de bord de ventes. Plutôt que de maintenir une table de correspondance séparée (qui peut être obsolète), tu interroges directement le cube OLAP.

Les étapes
  1. 1
    Dans une cellule, écris =PROPRIETEMEMBRECUBE(.
  2. 2
    En 1er argument : écris le nom de la connexion au cube entre guillemets, "Ventes". Ton classeur doit déjà être relié à un cube OLAP (Analysis Services, Azure AS ou Power BI), et ce nom doit reprendre à la casse près celui qui figure dans Données > Connexions, sinon la fonction n'a rien à interroger.
  3. 3
    En 2ᵉ argument : saisis l'expression MDX qui pointe le membre, "[Client].[Paris]". Elle se lit de gauche à droite : [Client] est la dimension du cube et [Paris] le membre précis dont tu veux lire un attribut.
  4. 4
    En 3ᵉ argument : écris le nom de la propriété à extraire entre guillemets, "Manager". Ce nom est sensible à la casse, alors recopie-le tel qu'il est défini dans le cube pour éviter une erreur.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=PROPRIETEMEMBRECUBE("Ventes";"[Client].[Paris]";"Manager")
Explication
La fonction interroge le cube pour le membre [Client].[Paris] et renvoie la propriété Manager, soit Sophie Martin. Le résultat se met à jour automatiquement si les données du cube changent, sans aucune intervention de ta part.
Exemple 2

Contrôleur : extraire les codes internes des produits

Tu es contrôleur et tu dois ajouter les codes internes des produits pour la traçabilité et la conformité audit. Ces codes sont stockés comme propriétés dans la dimension Produit du cube OLAP, centralisés au niveau du système source.

Les étapes
  1. 1
    Dans une cellule, écris =PROPRIETEMEMBRECUBE(.
  2. 2
    En 1er argument : écris le nom de la connexion au cube entre guillemets, "Catalogue". Ton classeur doit déjà être relié au cube OLAP et sa dimension Produit porter un attribut de code interne, et ce nom se reprend à la casse près de celui listé dans Données > Connexions.
  3. 3
    En 2ᵉ argument : saisis l'expression MDX qui pointe le membre, "[Produit].[Ordinateur Pro]". [Produit] est la dimension et [Ordinateur Pro] le membre ciblé, dont tu respectes les espaces exactement comme dans le cube.
  4. 4
    En 3ᵉ argument : écris le nom de la propriété qui porte le code de traçabilité entre guillemets, "CodeInterne". Comme la casse compte, copie-colle ce nom depuis la définition du cube plutôt que de le retaper.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=PROPRIETEMEMBRECUBE("Catalogue";"[Produit].[Ordinateur Pro]";"CodeInterne")
Explication
La fonction récupère automatiquement le code PROD-2024-A15 pour l'Ordinateur Pro, sans table de correspondance à maintenir dans Excel. Si un code change dans le système source, ton rapport se met à jour lors du prochain rafraîchissement de la connexion.
Exemple 3

Analyste BI : enrichir un rapport avec la région de chaque magasin

Tu construis un rapport territorial et tu veux enrichir chaque ligne de données avec la région administrative du magasin pour pouvoir agréger et filtrer par région. La propriété Région est définie dans la hiérarchie géographique du cube.

Les étapes
  1. 1
    Dans une cellule, écris =PROPRIETEMEMBRECUBE(.
  2. 2
    En 1er argument : écris le nom de la connexion au cube entre guillemets, "Ventes". Ton classeur doit déjà être relié au cube OLAP et sa dimension Magasin exposer un attribut de région, et ce nom se reprend à l'identique de celui visible dans Données > Connexions.
  3. 3
    En 2ᵉ argument : saisis l'expression MDX qui pointe le membre, "[Magasin].[Paris Centre]". La dimension [Magasin] précède le membre [Paris Centre], et pour traiter tous tes magasins tu copies la formule vers le bas en faisant varier ce membre.
  4. 4
    En 3ᵉ argument : écris le nom de la propriété géographique à afficher entre guillemets, "Région". Le nom est sensible à la casse et aux accents, alors reprends-le tel qu'il figure dans le cube.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=PROPRIETEMEMBRECUBE("Ventes";"[Magasin].[Paris Centre]";"Région")
Explication
En copiant la formule vers le bas et en faisant varier l'expression membre, tu crées automatiquement une colonne de régions pour tous tes magasins. Ces données peuvent ensuite alimenter des graphiques ou des tableaux croisés dynamiques pour des analyses territoriales.
Exemple 4

Responsable RH : tableau de coordonnées depuis le cube

Tu dois générer un annuaire complet des employés avec leurs coordonnées, en partant des données centralisées dans le cube RH. Plutôt que d'exporter et de coller des données, tu extrais directement les propriétés depuis Excel.

Les étapes
  1. 1
    Dans une cellule, écris =PROPRIETEMEMBRECUBE(.
  2. 2
    En 1er argument : écris le nom de la connexion au cube entre guillemets, "RH". Ton classeur doit déjà être relié au cube OLAP et sa dimension Employé porter les attributs de coordonnées, et ce nom se reprend en respectant exactement sa casse.
  3. 3
    En 2ᵉ argument : saisis l'expression MDX qui pointe le membre, "[Employé].[Alice Durand]". La dimension [Employé] est suivie du membre [Alice Durand], dont tu veux justement lire les coordonnées.
  4. 4
    En 3ᵉ argument : écris le nom de la propriété à extraire entre guillemets, "Email". Tu réécris ensuite la même formule avec "Département" puis "Téléphone" dans les colonnes voisines, une propriété par colonne, et l'annuaire entier se construit à partir du cube.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=PROPRIETEMEMBRECUBE("RH";"[Employé].[Alice Durand]";"Email")
Explication
Une colonne par propriété, une formule par cellule : Email, Département et Téléphone dans trois colonnes distinctes. L'annuaire se met à jour automatiquement si les coordonnées changent dans le système RH source.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction PROPRIETEMEMBRECUBE

Comme cette fonction parle en direct au serveur OLAP, ses ratés viennent presque toujours de ce dialogue : un nom de connexion qui ne colle pas (#NOM?), une propriété qui n'existe pas sur le membre (#VALEUR!), ou simplement le serveur qui prend son temps (#OBTENTION_DONNEES...).

Le dernier cas n'est pas une erreur mais un signal de fatigue : multiplie les formules sur des centaines de lignes et chaque cellule lance sa propre requête, ce qui fait ramer le recalcul.

Erreur #NOM? – Connexion ou membre introuvable

Excel ne trouve pas la connexion OLAP spécifiée ou l'expression membre est invalide. Le nom de connexion 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. Vérifie aussi que l'expression MDX utilise la syntaxe correcte avec les crochets.

Erreur #VALEUR! – Propriété inexistante

La propriété demandée n'existe pas pour ce membre dans le cube OLAP, ou son nom est mal orthographié. Les noms de propriétés sont sensibles à la casse.

Solution : Consulte la documentation du cube ou utilise les outils d'analyse OLAP pour lister les propriétés disponibles. Copie-colle le nom exact de la propriété depuis cette liste. Encapsule la formule dans SIERREUR(...; "Propriété non disponible") pour gérer ce cas proprement.

Affichage #OBTENTION_DONNEES... – Connexion en cours

Excel interroge actuellement le serveur OLAP. Ce message est temporaire et apparaît pendant le chargement des données depuis le cube.

Solution : Attends quelques secondes que la connexion s'établisse. Si le message persiste plus de 30 secondes, vérifie que le serveur OLAP est accessible depuis ton réseau et que tes identifiants de connexion sont valides.

Performances lentes avec de nombreuses formules

Chaque formule PROPRIETEMEMBRECUBE génère une requête au serveur OLAP. Sur un rapport avec des centaines de lignes, cela peut ralentir significativement les recalculs.

Solution : Utilise des tableaux croisés dynamiques OLAP pour les grands volumes de données (ils optimisent les requêtes en batch). Pour des propriétés qui changent rarement, mets en cache les valeurs dans une table locale et rafraîchis manuellement.

FAQ

Questions fréquentes

MEMBRECUBE retourne le membre lui-même (son nom ou son identifiant MDX dans le cube), tandis que PROPRIETEMEMBRECUBE extrait une propriété spécifique de ce membre, comme son manager, son code ou tout autre attribut. En pratique, tu utilises MEMBRECUBE pour naviguer dans la structure du cube, et PROPRIETEMEMBRECUBE pour afficher des informations contextuelles associées à un membre que tu as déjà identifié.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction PROPRIETEMEMBRECUBE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir