この例では、各市場および各製品の製品シェアおよび市場シェアの値を計算します。 シェア値は次のように計算されます:
-
合計に対する各メンバーの割合
-
各メンバーの親に対する割合
Measuresディメンションに次の4つのメンバーを追加したとします:
-
マーケット・シェア
-
製品シェア
-
マーケット%
-
製品%
スクリプトの例:
/* First consolidate the Sales values to ensure that they are accurate */
FIX(Sales)
CALC DIM(Year, Market, Product);
ENDFIX
/* Calculate each market as a percentage of the total market for each product */
"Market Share" = Sales % Sales -> Market;
/* Calculate each product as a percentage of the total product for each market */
"Product Share" = Sales % Sales -> Product;
/* Calculate each market as a percentage of its parent for each product */
"Market %" = Sales % @PARENTVAL(Market, Sales);
/* Calculate each product as a percentage its parent for each market */
"Product %" = Sales % @PARENTVAL(Product, Sales);
Essbaseは、次のアクションを実行します:
-
販売値を修正し、すべての販売値を連結します。
CALC DIMコマンドを使用して、年、市場およびProductディメンションを計算します。 MeasuresディメンションにはSalesメンバーが含まれているため、集計されません。 Scenarioディメンションはラベルのみであるため、連結する必要はありません。
-
データベースを循環し、各月の各市場の各製品のSales値を取得して、このSales値を各製品のすべての市場のTotal Salesのパーセンテージとして計算します(Sales -> Market)。
-
各月の各市場における各製品の販売値を取得し、この販売値を各市場における全製品の販売合計の割合として計算して、製品シェアを計算します(Sales -> Product)。
-
各月の各市場における各製品の販売値を取得し、この販売値をMarketディメンションの現在のメンバーの親の販売値の割合として計算して、市場%を計算します。
@PARENTVAL関数は、Marketディメンションの親のSales値を取得するために使用されます。
-
各月の市場ごとに各製品の販売値を取得し、この販売値をProductディメンションの現在のメンバーの親の販売値の割合として計算して、製品%を計算します。
@PARENTVAL関数は、Productディメンションの親のSales値を取得するために使用されます。