上部に「年」、下部に「月」を示す Excel 2007 ピボット テーブルがあります。私がやろうとしているのは、値を前年の同じ月からの「% 差」として表すことです。(例: Jan-07 が $100,000 で、Jan-08 が $120,000 の場合、Jan-08 に「20%」と表示してほしい)。ただし、(値フィールド設定の [値を表示] タブを使用して) これを実行しようとするたびに、すべての数値が「#N/A」になります。データ ソースとして Analysis Services キューブを使用してこれを行う方法はありますか? ピボット テーブルのデータ ソースとして別のシートのデータを使用して、これとまったく同じことを行うと、正常に動作します。
2979 次
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 に答える