メンバー・セット関数
Essbaseのメンバー・セット計算関数は、1つ以上のメンバーのリストを返します。返されるリストは、指定する入力メンバーによって異なります。たとえば、@CHILDREN(Year)は月を返します。メンバー・セット関数に複数のメンバーを入力するには、範囲演算子およびディメンション間式を使用できます。
数式の一部としてメンバー・セット関数が呼び出されると、計算が開始される前にメンバーのリストが生成されます。リストは指定したメンバーに基づいており、現在のメンバーから独立しているため、リストが変わることはありません。
メンバー・セット関数(たとえば、@CHILDRENまたは@SIBLINGS)を使用して、計算スクリプトで計算するメンバーのリストを指定する場合、Essbaseは、結果のリスト内のすべての動的計算メンバーまたは動的計算/保管メンバーの計算をバイパスします。
@ATTRIBUTE関数と@WITHATTR関数のみが、属性メンバーまたは属性計算ディメンションのメンバーをメンバー・セット関数のパラメータとして使用できます。
("1998":"2001" -> @Levmbrs (Year, 0))などのディメンション間式を使用できます。ディメンション間演算子は結合法則(x -> y) -> z=x -> (y -> z)ですが、x -> y = y -> xがセットであり、要素の順序が異なるために、交換可能ではありません。
メンバー・セット関数で範囲演算子を使用できます。:演算子はレベル範囲を返し、::演算子は世代範囲を返します。
表3-8 メンバー・セット関数
| 関数 | 戻り値 |
|---|---|
| @ALLANCESTORS | 共有されたメンバーの祖先を含む、メンバーのすべての祖先。 |
| @ANCEST | 現在のメンバーまたは明示的に指定したメンバーからの距離にある祖先。 |
| @ANCESTORS | メンバーのすべての祖先、または指定した距離までの祖先。 |
| @ATTRIBUTE | 属性メンバー名に関連付けられているすべての基本メンバー。 |
| @BETWEEN | 名前文字列値が2つの指定した文字列トークンの間にあり、それらを含むすべてのメンバー。 |
| @CHILDREN | メンバーの子。 |
| @CURRMBR | 指定したディメンションで現在計算されているメンバー。 |
| @DESCENDANTS | メンバーのすべての子孫、または指定した距離までの子孫。 |
| @EQUAL | 指定したトークン名と一致するメンバー名。 |
| @EXPAND | メンバー・リスト内の各メンバーのメンバー・セット関数を呼び出すことにより、メンバー検索を拡張します。 |
| @GENMBRS | 世代にあるディメンションのメンバー。 |
| @IALLANCESTORS | メンバーとメンバーの祖先(共有メンバーの祖先を含む)。 |
| @IANCESTORS | メンバーと、すべてのメンバーの祖先、または指定した距離までの祖先のいずれか。 |
| @ICHILDREN | メンバーとその子。 |
| @IDESCENDANTS | メンバーと、すべてのメンバーの子孫または指定した距離までの子孫のいずれか。 |
| @ILANCESTORS | 指定したメンバーのリストのメンバーと、指定したメンバーのリストのすべての祖先、または指定した距離までの祖先のいずれか。 |
| @ILDESCENDANTS | 指定したメンバーのリストのメンバーと、指定したメンバーのリストのすべての子孫、または指定した距離までの子孫のいずれか。 |
| @ILSIBLINGS | メンバーとその左側の兄弟。 |
| @INTERSECT | 指定した2つのメンバーのリストの交点にあるメンバー。 |
| @IRSIBLINGS | メンバーとその右側の兄弟。 |
| @IRDESCENDANTS | メンバーとそのすべての子孫、または共有メンバーの子孫を含む、指定した距離までの子孫。 |
| @ISIBLINGS | メンバーとその兄弟。 |
| @LANCESTORS | メンバーの指定したリストのすべての祖先、または指定した距離までの祖先。 |
| @LDESCENDANTS | メンバーの指定したリストのすべての子孫、または指定した距離までの子孫。 |
| @LEVMBRS | レベルのディメンションのメンバー。 |
| @LIST | 引数からコンパイルされた単一のリストであり、式リスト、メンバー・リスト、または範囲リストを必要とする関数に使用できます。 |
| @LSIBLINGS | メンバーの左側の兄弟。 |
| @MATCH | 世代、レベル、メンバーに対して実行されたパターン検索に一致するメンバーとその子孫。 |
| @MBRCOMPARE | 比較条件に一致するメンバー名。 |
| @MBRPARENT | 指定したメンバーの親。 |
| @MEMBER | 名前文字列を持つメンバー。 |
| @MEMBERAT | リスト内の指定した場所のメンバー。 |
| @MERGE | 2つのリストからのマージされたリスト。 |
| @NEXTSIBLING | 次、または右端のメンバーの兄弟。 |
| @NOTEQUAL | 指定したトークン名と一致しないメンバー名。 |
| @PARENT | ディメンションで計算されている現在のメンバーの親。オプションで、別のメンバーと交差します。 |
| @PREVSIBLING | メンバーの前、または左端の兄弟。 |
| @RANGE | あるディメンションのメンバーと別のディメンションの範囲と交差させるメンバー・リスト。 |
| @RDESCENDANTS | メンバーのすべての子孫、または指定した距離までの共有メンバーの子孫を含む子孫。 |
| @RELATIVE | メンバーからの距離にあるすべてのメンバー。 |
| @REMOVE | List1、list2にもあるものはすべて削除されます。 |
| @RSIBLINGS | メンバーの右側の兄弟。 |
| @SHIFTSIBLING | メンバーからの指定した距離の兄弟。 |
| @SIBLINGS | メンバーの兄弟。 |
| @UDA | UDAを持つディメンションのメンバー。 |
| @WITHATTR | 条件を満たす属性に関連付けられているディメンションの基本メンバー。 |
| @XRANGE | 同じレベルにある2つのメンバー間の、それらを含むメンバーの範囲。 |
メンバー・セット関数の生成とレベル範囲演算子
演算子:と::は、メンバーのリストを返すメンバー・セット関数で使用できます。:演算子はレベルベースの範囲を返し、::演算子は世代ベースの範囲を返します。たとえば、Jan:DecとJan::Decはどちらも、JanとDecの間(これらを含む)のすべてのメンバーを返します。
違いは、Jan:Decは同じレベルのすべてのメンバーを返し、Jan::Decは同じ世代のすべてのメンバーを返すことです。
次のアウトラインを例とします。
Q1 - Jan
Feb
Mar
Q2 - Apr
May
Jun
Q3
Q4 - Oct
Nov
Dec関数@MOVAVG(Sales, 3, Jan:Dec)は、@MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Q3, Oct, Nov, Dec)を計算します。
関数@MOVAVG(Sales, 3, Jan::Dec)は、@MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Oct, Nov, Dec)を計算します。