1

我有一个 Excel 2007 数据透视表,顶部显示“年份”,侧面显示“月份”。我想要做的是将值表示为与上一年同月的“百分比差异”。(例如,如果 Jan-07 是 $100,000,而 Jan-08 是 $120,000,我希望 Jan-08 显示“20%”)。但是,每次我尝试这样做(使用值字段设置的“显示值”选项卡)时,我的所有数字都会变为“#N/A”。有没有办法使用 Analysis Services 多维数据集作为数据源来做到这一点?当我使用不同工作表上的数据作为数据透视表的数据源来执行完全相同的操作时,它可以正常工作。

4

2 回答 2

1

我不确定在 Excel 中是否有任何方法可以做到这一点,但您可以在多维数据集中创建一个计算度量来做到这一点。

MDX 表达式如下所示:

([Measures].[Amount] - ([Date].[Year].PrevMember, [Measures].[Amount])) 
/ ([Measures].[Amount])
于 2009-07-06T06:14:06.147 回答
1

参考期间比较,您可以使用以下计算脚本。 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;
于 2009-10-23T10:03:41.553 回答