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 に答える