2009-06-05 2 views
0

私は上部に「年」、側に「月」を示すExcel 2007ピボットテーブルを持っています。私がしようとしているのは、前年の同じ月の値を「%差」として表すことです。 (例:Jan-07が$ 100,000、Jan-08が$ 120,000の場合、Jan-08に'20% 'を表示します)。しかし、私がこれをやろうとするたびに(値フィールド設定の「値を表示」タブを使用して)、すべての番号が「#N/A」になります。 Analysis Servicesキューブをデータソースとして使用する方法はありますか?ピボットテーブルのデータソースとは別のシートのデータを使って、まったく同じことをするとうまくいきます。ソースがSSASキューブの場合は、Excel 2007のピボットテーブルで[値を表示]オプションを使用しますか?

答えて

0

Excelでこれを行う方法があるかどうかはわかりませんが、それを行うキューブに計算された数値データを作成できます。

MDX式は、次のようになります:期間比較に

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

。私は私の質問で毎年言及していることを知っていますが、月から月、または四半期から四半期まで見ることもできます。私は、これらの措置の3つを作成し、どちらを使うべきかを教えなければならないでしょう...私は、データソースがSQL ServerキューブであるときにデフォルトのExcel機能が動作しない理由を理解できません...ありがとう! –

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; 
関連する問題