当源是SSAS多维数据集时,在Excel 2007数据透视表中使用“显示值为”选项?

时间:2009-06-05 18:28:03

标签: excel service pivot pivot-table analysis

我有一个Excel 2007透视表,在顶部显示“年”,在旁边显示“月”。我想要做的是将价值表示为与前一年同月相比的“%差异”。 (例如,如果07年1月是100,000美元,08年1月是120,000美元,我希望08年1月能显示'20%')。但是,每次我尝试这样做时(使用“值字段设置”的“显示值”选项卡),我的所有数字都会转到“#N / A”。有没有办法使用Analysis Services多维数据集作为数据源?当我使用不同工作表上的数据作为数据透视表的数据源时完全相同的事情,它工作正常。

2 个答案:

答案 0 :(得分:0)

我不确定在Excel中是否有任何方法可以执行此操作,但您可以在多维数据集中创建一个可以执行此操作的计算度量。

MDX表达式如下所示:

([Measures].[Amount] - ([Date].[Year].PrevMember, [Measures].[Amount])) 
/ ([Measures].[Amount])

答案 1 :(得分:0)

参考期间与期间比较,您可以使用以下计算脚本。 YearMonthDate是日期维度上的层次结构,但您也可以根据需要获得四分之一。

  

/ * CALCULATE命令控制中的叶子单元的聚合   立方体。如果删除或修改了CALCULATE命令,则其中的数据   立方体受到影响。您只应在编辑此命令时使用   手动指定多维数据集的聚合方式。   * /

CALCULATE; 
CREATE MEMBER CURRENTCUBE.[MEASURES].PrevPeriod
 AS ([Measures].[Count],  [Date].[YearMonthDate].CURRENTMEMBER.PREVMEMBER ), 
FORMAT_STRING = "#,#", 
VISIBLE = 1  ; 

CREATE MEMBER CURRENTCUBE.[Measures].PeriodChange
 AS ([Measures].[Count] - [Measures].[PrevPeriod]), 
FORMAT_STRING = "#,#", 
VISIBLE = 1  ;     
CREATE MEMBER CURRENTCUBE.[Measures].PercentChange
 AS (
        [Measures].[PeriodChange]/
        IIF(    ([Measures].[PrevPeriod] = 0), 
                [Measures].[Count],
                [Measures].[PrevPeriod]
            )
    ), 
FORMAT_STRING = "Percent", 
VISIBLE = 1;     
CREATE MEMBER CURRENTCUBE.[Measures].YearToDate
 AS (
       SUM(PeriodsToDate([Date].[YearMonthDate].[Year Code]), [Measures].[Count])
    ), 
FORMAT_STRING = "#,#", 
VISIBLE = 1;