2017-03-16 4 views
0

Je tente de créer un membre calculé dans Excel pour mon modèle tabulaire. Je n'ai pas accès au modèle en SQL et je ne peux pas y changer le code.Membre calculé dans Excel disparaissant en fonction de l'ordre des colonnes

Mon but est de créer un membre calculé qui contient toutes les branches sauf Atlanta. Voici le code mdx que j'ai dans Excel.

aggregate([Branch].[Branch].[Branch].MEMBERS)-[Branch].[Branch].&[101 - ATLANTA] 

Le code fonctionne bien, comme on peut le voir dans le tableau pivotant suivant.

Working ptable

Code de travail MDX:

WITH 
MEMBER [Branch].[Branch].[All].[ExclAtl] as aggregate([Branch].[Branch]. 
    [Branch].MEMBERS)-[Branch].[Branch].&[101 - ATLANTA] 
SELECT NON EMPTY Hierarchize(DrilldownMember(CrossJoin({[Branch].[Branch]. 
    [All],[Branch].[Branch].[Branch].AllMembers}, {([Currency Type]. 
    [Currency Type].[All])}), [Branch].[Branch].[Branch].AllMembers, 
    [Currency Type].[Currency Type])) 
DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS 
FROM (SELECT ({[Branch].[Branch].[All].[caseTest], [Branch].[Branch].[All]. 
    [ExclAtl], [Branch].[Branch].&[101 - ATLANTA]},{[Currency Type]. 
    [Currency Type].&[Base (USD)]}) ON COLUMNS FROM [Model]) 
WHERE ([Scale].[Currency Scale].[All],[Reserve Class].[Reserve Class Line]. 
    [All],[Param1].[Gross Ceded Net].&[Gross],[Measures].[Total Incurred]) 
CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, 
    FONT_FLAGS 

Le problème est le membre calculé ExclAtl ne se présente pas lorsque je change les colonnes de type de devise et Direction. Pourquoi est-ce? Existe-t-il un meilleur moyen de taper le code MDX dans Excel afin que le membre ExclAtl montrera pour n'importe quel ordre de colonne que je choisis?

Not working ptable

code MDX (ExclAtl ne pas montrer)

WITH 
MEMBER [Branch].[Branch].[All].[ExclAtl] as aggregate([Branch].[Branch]. 
    [Branch].MEMBERS)-[Branch].[Branch].&[101 - ATLANTA] 
SELECT NON EMPTY Hierarchize(DrilldownMember(CrossJoin({[Currency Type]. 
    [Currency Type].[All],[Currency Type].[Currency Type].[Currency 
    Type].AllMembers}, {([Branch].[Branch].[All])}), [Currency Type]. 
    [Currency Type].[Currency Type].AllMembers, [Branch].[Branch])) 
DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS 
FROM (SELECT ({[Currency Type].[Currency Type].&[Base (USD)]},{[Branch]. 
    [Branch].[All].[caseTest], [Branch].[Branch].[All].[ExclAtl], [Branch]. 
    [Branch].&[101 - ATLANTA]}) ON COLUMNS FROM [Model]) 
WHERE ([Scale].[Currency Scale].[All],[Reserve Class].[Reserve Class Line]. 
    [All],[Param1].[Gross Ceded Net].&[Gross],[Measures].[Total Incurred]) 
CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, 
    FONT_FLAGS 

Répondre

0

Le problème réside ici:

{([Branch].[Branch].[All])} 

Il ne reviendra pas la [Direction] [Direction] [.. Tous]. [ExclAtl] membre. Vous devriez utiliser à la place:

{([Branch].[Branch].AllMembers)} 
+0

Merci! Y at-il un moyen de faire cette édition dans Excel? Ou y a-t-il un paramètre que je peux changer? Je n'ai pas accès au modèle tabulaire pour éditer le code mdx en SQL. Je fais tout dans Excel. –

+0

Vous pouvez jouer avec la suppression des totaux. Je pense que cela peut aider, en raison de la simplification du code généré (pas de DrilldownMember, etc). Mais le meilleur moyen est d'ajouter un attribut séparé. –