複数の製品にまたがるコストの割当て
このEssbaseブロック・ストレージの計算スクリプトの例では、各月の各市場における各製品に間接費を割り当てます。ARRAY、FIXおよびCALC DIMを使用します。#Missing値は集計されません。
間接費は、各製品の売上値に基づいて、すべての製品の総売上のパーセンテージとして割り当てられます。
Measuresディメンションに2つのメンバーを追加しているとします。
-
OH_Costs (割り当てる間接費)
-
OH_TotalCost (合計間接費)
スクリプトの例:
/* Declare a temporary array called ALLOCQ based on the Year dimension */
ARRAY ALLOCQ[Year];
/* Turn the Aggregate Missing Values setting off. If this is your system default, omit this line */
SET AGGMISSG OFF;
/* Allocate the overhead costs for Actual values */
FIX(Actual)
OH_Costs (ALLOCQ=Sales/Sales->Product; OH_Costs =
OH_TotalCost->Product * ALLOCQ;);
/* Calculate and consolidate the Measures dimension */
CALC DIM(Measures);
ENDFIX
Essbaseで次の計算が実行されます。
-
各メンバーの組合せについて、総売上のパーセンテージとして売上値を一時的に保管するために、ALLOCQという1ディメンションの配列を作成します。
ALLOCQのサイズは、Yearディメンションのメンバー数によって決まります。
-
#MISSING値は、その親に集約されません(SET AGGMISSGはOFFに設定されています)。親レベルに保管されているデータ値は上書きされません。
SET AGGMISSG OFFがシステムのデフォルトである場合は、この行を省略します。「#MISSING値」を参照してください。
-
実績値を確定します。
-
実績に対するメンバーの組合せごとにOH_Costsを逐次計算します。
-
各月の各市場における各製品の売上値を取得して、各市場の全製品の総売上のパーセンテージとして計算します(Sales -> Product)。結果はALLOCQに配置されます。
-
すべての製品の合計間接費を取得して(OH_TotalCost -> Product)、その値に先ほどALLOCQに配置された値を乗算します。結果はOH_Costsに配置されます。
両方の等式が丸カッコ( )で囲まれ、OH_Costsのメンバー: OH_Costs (equation1; equation2;)に関連付けられていることに注意してください。
-
-
Measuresディメンションを計算し、集計します。