メンバー集計演算子の理解
Essbaseアウトラインでは、メンバー集計演算子によって、階層内の子メンバーからその親へのデータ値のロールアップ方法が制御されます。
これらの例では、最初にEssbaseデータベースがまだ計算されておらず、level-0メンバーのみが値を持っていると仮定します。 これらの値はデータベースにロードされていますが、計算の前にデータはまだ親メンバーにロールアップされていません。
メンバー演算子を使用した連結は、トップダウンの順序で行われます。 デフォルトの集計は加算であるため、(+)演算子を最初に示すことができます。
(+)演算子の使用例
次の例では、P1には計算前の値がありません。 キューブが計算される前にスプレッドシートで問い合せた場合、その値は#MISSINGとして表示されます。
P1
M1 (+) 10
M2 (+) 15
M3 (+) 20
キューブが計算されると、P1の値は45になります。 連結は、次のように上から下に進みます:
P1 = P1+M1 = #MISSING+10 = 10
P1 = P1+M2 = 10+15 = 25
P1 = P1+M3 = 25+20 = 45
(-)演算子の使用例
ここで、減算を使用して集計されるメンバーを含む同様の階層について考えてみます。
P2
M1 (-) 10
M2 (-) 15
M3 (-) 20
キューブが計算されると、P2の値は -45になります。 連結は、次のように上から下に進みます:
P2 = P2–M1 = #MISSING–10 = -10
P2 = P2-M2 = -10-15 = -25
P2 = P2-M3 = -25–20 = -45
(*)演算子の使用例
乗算を使用して集計されるメンバーを含む階層について考えてみます。
P3
M1 (*) 10
M2 (*) 15
M3 (*) 20
キューブが計算されると、P3の値は#MISSINGになります。 連結は、次のように上から下に進みます:
P3 = P3*M1 = #MISSING*10 = #MISSING
P3 = P3*M2 = #MISSING*15 = #MISSING
P3 = P3*M3 = #MISSING*20 = #MISSING
P3の最終的な統合値が意図した結果ではない可能性があります。 P3をすべての子メンバーの乗算積にする必要がある場合は、最初の子メンバーで(+)演算子を使用してみてください:
P3
M1 (+) 10
M2 (*) 15
M3 (*) 20
最初の演算子を加算に変更すると、キューブの計算後にP3に#MISSING以外の値が設定されます。 連結は、次のように上から下に進みます:
P3 = P3+M1 = #MISSING+10 = 10
P3 = P3*M2 = 10*15 = 150
P3 = P3*M3 = 150*20 = 3000
(/)演算子を使用した例
ビジョン(最初の子メンバーを除く)を使用して集計されるメンバーを含む階層について考えてみます。
P4
M1 (+) 10
M2 (/) 15
M3 (/) 20
キューブが計算されると、P4の値は.033になります。 連結は、次のように上から下に進みます:
P4 = P4+M1 = #MISSING+10 = 10
P4 = P4/M2 = 10/15 = 0.666
P4 = P4/M3 = 0.666/20 = 0.033
(%)演算子を使用した例
最初の子メンバーを除いて、パーセンテージ計算([a/b]*100)を使用して集計されたメンバーを含む階層について考えてみます。
P5
M1 (+) 10
M2 (%) 15
M3 (%) 20
キューブが計算されると、P5の値は333になります。 連結は、次のように上から下に進みます:
P5 = P5+M1 = #MISSING+10 = 10
P5 = (P5/M2)*100 = (10/15)*100 = 66.6
P5 = (P5/M3)*100 = (66.6/20)*100 = 333
多数の演算子を使用した例
様々な演算子と統合された次の階層について考えてみます。
Parent1
Member1 (+) 10
Member2 (+) 20
Member3 (-) 25
Member4 (*) 40
Member5 (%) 50
Member6 (/) 60
Member7 (~) 70
Essbaseは、Member6を介して次のようにMember1を計算します:
Parent1 = Parent1+Member1 = #MISSING+10 = 10;
Parent1 = Parent1+Member2 = 10+20 = 30;
Parent1 = Parent1+Member3 = 30-25 = 5;
Parent1 = Parent1+Member4 = 5*40 = 200;
Parent1 = Parent1+Member5 = (200/50)*100 = 400
Parent1 = Parent1+Member6 = 400/60 = 6.666;
Member7が連結なし(~)に設定されているため、Essbaseは連結でMember7を無視します。 したがって、Parent1の最終的な値は6.666です。
「計算演算子*、 /,および%の使用」の重要な考慮事項も参照してください。
メンバー連結の設定
次に示すメンバー集計プロパティは、子を親にロールアップする方法を決定します。 デフォルトでは、新しいメンバーには加算(+)演算子が与えられます。つまり、メンバーが追加されます。 たとえば、Jan、FebおよびMarの数値が追加され、その結果が親であるQtr1に格納されます。
ノート:
Essbaseでは、属性ディメンションのメンバーで連結プロパティは使用されません。 「属性データの計算」を参照してください。
表6-2 集計演算子
演算子 | 説明 |
---|---|
+ |
分岐内の前のメンバーに対して実行された計算の結果値にメンバーを追加します。+がデフォルトの演算子です。 |
- |
メンバーに -1を乗算し、他のメンバーで実行された以前の計算の合計に加算します。 |
* |
メンバーに、他のメンバーで実行された前回の計算の結果を乗算します。 |
/ |
メンバーを、他のメンバーに対して実行された前の計算の結果に分割します。 |
% |
メンバーを、他のメンバーで実行された以前の計算の合計に分割します。 結果に100が乗算され、パーセント値が生成されます。 |
~ |
親への連結でメンバーを使用しません。 |
^ |
属性ディメンションを除くすべてのディメンションの連結でメンバーを使用しません。 |
メンバー集計プロパティを設定するには、「ディメンション・ワークシートの理解」を参照してください。
#MISSING値およびゼロ(0)値に対する操作結果
メンバーの一意の組合せに対してデータ値が存在しない場合、Essbaseはその組合せに#MISSING
の値を提供します。 #MISSING
値はゼロ(0)値とは異なります。 したがって、Essbaseでは、#MISSING
値は0(ゼロ)値とは異なる方法で処理されます。
次の表に、Essbaseによる#MISSING
値の計算方法を示します。 この表では、Xは任意の数値を表します。
表6-3 Essbaseによる欠損値の計算方法
Calculation/Operation | 結果 |
---|---|
X + |
X |
X -
|
X -X |
X * |
|
X /
X / 0 |
|
X %
X % 0 |
|
X == |
Xが |
X != X <> |
Xが Xが |
(X <= |
(X <=0) |
(X >= |
(X >=0)または(X == |
(X > |
(X > 0) |
(X < |
(X < 0) |
X AND 1 AND 0 AND
|
0
|
X OR 1 OR 0 OR
|
1
|
IF ( |
IF (0) |
f ( |
|
f (X) |
fのドメイン内にないXの |