Excel PivotTable basé sur cube – comment split les mesures en fonction de deux membres d'une dimension

Mon cube possède une valeur de vente.

Aussi une dimension d'object. Les membres de la hiérarchie des éléments sont «Cat1» et «Cat2». Cat1 et Cat2 peuvent avoir une variété de valeurs différentes.

J'essaie de définir un membre en fonction de valeurs spécifiques pour Cat1 et Cat2.

Le nouveau membre sera utilisé dans les colonnes de tableau croisé dynamic pour split les ventes par le nouveau membre.

"1Cup" where Cat1 = Coffee and Cat2 IN (Cup,Cup1) "OtherCoffee" where Cat1 = Coffee and Cat2 IN (Creamer,Accessory,Box) "AllOtherSales" Cat1 = OPS and Cat2 IN (Accessory,Battery,Electronics...and on and on) 

Comment puis-je aborder cela?

Si vous ne pouvez pas changer le cube, il n'y a pas de possibilité facile de créer des memebrs calculés, sauf – selon cette publication de blog , si vous avez Excel 2013. Dans les versions Excel plus anciennes, la seule possibilité que je connaisse serait d'installer la table pivot de OLAP extensions , un plugin pour Excel qui vous permet d'append des mesures calculées MDX que vous pouvez utiliser dans la requête.

En supposant que vous possédez une de ces possibilités pour écrire des définitions de membres MDX et en supposant que votre hiérarchie d' Item est en dimension Dim et 'Cat1' et Cat2 sont des niveaux, les attributes sur lesquels ils sont basés sont nommés 'Cat1' et Cat2 ainsi que les membres que vous souhaitez définir doivent être situés dans le niveau supérieur, juste en dessous du membre All , que je suppose s'appelle All (vous voyez que je dois assumer beaucoup de détails sur votre cube et vos besoins), le MDX serait le suivant :

Pour le membre 1Cup , le nom du membre serait [Dim].[Item].[All].[1Cup] , et la définition serait

 Aggregate({ [Dim].[Cat1].[Coffee] } * { [Dim].[Cat2].[Cup], [Dim].[Cat2].[Cup1] }) 

et similaire pour les autres membres, chaque nouveau nom que vous souhaitez utiliser sera un membre distinct. atsortingbut, le MDX pour définir votre membre serait quelque chose comme