メンバー・セット関数

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 List1list2にもあるものはすべて削除されます。
@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)を計算します。