メンバー関連の関数

式でEssbaseメンバー関数を使用して、メンバー・リストと範囲の指定、メンバー・リストの生成、メンバー名の操作、およびディメンション間でのメンバーの組合せの操作を実行します。

メンバーのリストおよび範囲の指定

一部のEssbase計算関数を使用する場合は、複数のメンバー(mbrlist)を指定するか、メンバーの範囲を指定する必要があります。

たとえば、@ISMBR関数は、現在計算中のメンバーがリストまたは範囲で指定したメンバーと一致しているかどうかをテストできます。

次の表は、メンバーを指定するための構文をリストしています。

表18-8 メンバーのリストおよび範囲を指定するための構文

メンバーのリストまたは範囲 構文

単一のメンバー

メンバー名。

例:

Mar2001

メンバーのリスト

カンマ区切り(,)のメンバー名のリスト。

例:

Mar2001, Apr2001, May2001

同じレベルにあるすべてのメンバーの範囲(2つの定義メンバーの間にあり、それらの定義メンバー自体も含む)

コロン(:)で区切られた2つの定義メンバーの名前。例:

Jan2000:Dec2000

同じ世代にあるすべてのメンバーの範囲(2つの定義メンバーの間にあり、それらの定義メンバー自体も含む)

2つのコロン(::)で区切られた2つの定義メンバーの名前。

例:

Q1_2000::Q4_2000

関数で生成されたメンバーのリストまたはメンバーの範囲

メンバー・リストのコンテンツと対応する関数のリストは「メンバー・リストの生成」を参照してください。

範囲とリストの組合せ

カンマ(,)で区切られた各範囲、リストおよび関数。

例:

Q1_97::Q4_98, FY99, FY2000

または

@SIBLINGS(Dept01), Dept65:Dept73, Total_Dept

メンバー・リストまたはメンバーの範囲を必要とする関数で、メンバー・リストまたはメンバーの範囲を指定しなかった場合は、時間としてタグ付けされたディメンションのレベル0メンバーがEssbaseによって使用されます。時間としてタグ付けされたディメンションが存在しない場合は、Essbaseによってエラー・メッセージが表示されます。

メンバー・リストの生成

Essbaseメンバー・セット関数では、指定したメンバーまたはメンバー・リストに基づくメンバー・リストを生成できます。

表18-9 メンバー・セット関数のリスト

関数 メンバー・リストのコンテンツ

@ALLANCESTORS

指定したメンバーのすべての祖先(共有メンバーとして指定されたメンバーの祖先を含む)。この関数には、指定したメンバーは含まれません。

@IALLANCESTORS

指定したメンバーのすべての祖先(共有メンバーとして指定されたメンバーの祖先を含む)。この関数には、指定したメンバーが含まれます。

@ANCEST

指定した世代またはレベルにある指定したメンバーの祖先

@ANCESTORS

指定したメンバーのすべての祖先(オプションで、指定した世代またはレベルまで)。指定したメンバーは含まれません

@IANCESTORS

指定したメンバーのすべての祖先(オプションで、指定した世代またはレベルまで)。指定したメンバーも含まれます

@LANCESTORS

指定したメンバー・リストのすべての祖先(オプションで、指定した世代またはレベルまで)。指定したメンバーは含まれません

@ILANCESTORS

指定したメンバー・リストのすべての祖先(オプションで、指定した世代またはレベルまで)。指定したメンバーも含まれます

@ATTRIBUTE

指定した属性ディメンション・メンバーに関連付けられたすべての基本ディメンション・メンバー

@WITHATTR

指定した条件を満たす属性に関連付けられたすべての基本メンバー

@BETWEEN

名前の文字列値が、指定した2つの文字列トークンの間(2つのトークンを含む)に収まるすべてのメンバー

@CHILDREN

指定したメンバーのすべての子(指定したメンバーは含まれない)

@ICHILDREN

指定したメンバーのすべての子(指定したメンバーを含む)

@CURRMBR

指定したディメンションに対して計算中の現在のメンバー

@DESCENDANTS

指定したメンバーのすべての子孫(オプションで、指定した世代またはレベルまで)。指定したメンバーおよび共有メンバーの子孫は含まれません

@IDESCENDANTS

指定したメンバーのすべての子孫(オプションで、指定した世代またはレベルまで)。指定したメンバーは含まれますが、共有メンバーの子孫は含まれません

@LDESCENDANTS

指定したメンバー・リストのすべての子孫(オプションで、指定した世代またはレベルまで)。指定したメンバーは含まれません

@ILDESCENDANTS

指定したメンバー・リストのすべての子孫(オプションで、指定した世代またはレベルまで)。指定したメンバーも含まれます

@RDESCENDANTS

指定したメンバーのすべての子孫(オプションで、指定した世代またはレベルまで)。共有メンバーの子孫は含まれますが、指定したメンバーは含まれません

@IRDESCENDANTS

指定したメンバーのすべての子孫(オプションで、指定した世代またはレベルまで)。指定したメンバーおよび共有メンバーの子孫も含まれます

@EQUAL

指定したトークン名と一致するメンバー名

@NOTEQUAL

指定したトークン名と一致しないメンバー名

@EXPAND

メンバー・リスト内のメンバーごとにメンバー・セット関数を呼び出してメンバーの検索を拡張します

@GENMBRS

指定したディメンション内の指定した世代のすべてのメンバー

@LEVMBRS

指定したディメンション内の指定したレベルのすべてのメンバー

@LIKE

指定したパターンと一致するメンバー名。

@LIST

複数のリスト引数を必要とする関数で処理される、メンバーの個々のリスト

@MATCH

指定したワイルドカード選択に一致するすべてのメンバー

@MBRCOMPARE

比較条件と一致するメンバー名

@MBRCOMPARE

指定したメンバーの親

@MEMBER

文字列として指定された名前を持つメンバー

@MERGE

別の関数で処理される2つのメンバー・リストをマージしたリスト

@PARENT

指定されたディメンション内で計算される現在のメンバーの親

@RANGE

あるディメンションの指定されたメンバーと、別のディメンションの指定されたメンバー範囲が交差するメンバー・リスト

@REMOVE

一部のメンバーが削除されたメンバーのリスト

@RELATIVE

指定したメンバーの上または下の指定した世代またはレベルにあるすべてのメンバー

@SHARE

指定したメンバーのすべての共有メンバーを識別するメンバー・リスト

@SIBLINGS

指定したメンバーのすべての兄弟(指定したメンバーは含まれない)

@ISIBLINGS

指定したメンバーのすべての兄弟(指定したメンバーを含む)

@LSIBLINGS

データベース・アウトライン内で指定したメンバーに先行するすべての兄弟。指定したメンバーは含まれません

@RSIBLINGS

データベース・アウトライン内で指定したメンバーに続くすべての兄弟。指定したメンバーは含まれません

@ILSIBLINGS

データベース・アウトライン内で指定したメンバーに先行するすべての兄弟。指定したメンバーも含まれます

@IRSIBLINGS

データベース・アウトライン内で指定したメンバーに続くすべての兄弟。指定したメンバーも含まれます

@SHIFTSIBLING

メンバーから指定した距離にある兄弟

@NEXTSIBLING

メンバーの次または右端の兄弟

@PREVSIBLING

メンバーの直前または左端の兄弟

@UDA

Essbaseサーバー上に定義された共通のUDAを持つすべてのメンバー

@XRANGE

同じレベルにある2つの単一メンバーまたはディメンション間メンバーで指定されるメンバーの範囲(2つのメンバーを含む)を識別するメンバー・リスト

メンバー名の操作

ブロック・ストレージ式および計算スクリプトでは、Essbaseメンバー名を文字列として操作できます。

次の表は、文字列操作関数をリストしています。

表18-10 文字列操作関数のリスト

関数 文字列の操作

@CONCATENATE

メンバー名や指定した文字列を別のメンバー名または文字列に追加して、文字列を作成します

@NAME

テンプレート名を文字列として戻します

@SUBSTRING

別の文字列から、またはメンバー名から部分文字列を戻します

ディメンションをまたぐメンバーの組合せの操作

ディメンション間演算子を使用して、特定メンバーの組合せのデータ値を指し示します。ディメンション間演算子は、ハイフン(-)と大なり記号(>)を使用して作成します。ディメンション間演算子とメンバーの間にはスペースを入れないでください。

次の図はマルチディメンショナル・キューブを簡単に示したもので、JanはX軸の1番目の列、SalesはY軸の4番目で最上部の行、そしてActualはZ軸の1番目の行に存在します。この例では、Sales -> Jan -> Actualが単一データ値の交差です。

図18-2 単実データ値の指定


このイメージは、表の前のテキストで説明されている、単一データ値の交差を示しているキューブを表しています。

次の例では、各市場の各製品に様々な費用を割り当てることにより、ディメンション間演算子の使用方法を示します。すべての市場のすべての製品のMisc_Expensesが既知です。この式では、Product -> Marketの個々の組合せに、Misc_Expensesの合計値のパーセンテージが割り当てられます。割当ては、各市場の各製品のSalesの値に基づきます。

Misc_Expenses = Misc_Expenses -> Market -> Product * 
   (Sales / ( Sales -> Market -> Product));

Essbaseはデータベースを一巡して次の計算を実行します。

  1. 現在のメンバーの組合せのSales値が、すべての市場とすべての製品のSalesの合計値(Sales -> Market -> Product)で除算されます。

  2. ステップ1で計算された値と、すべての市場とすべての製品のMisc_Expenses値(Misc_Expenses -> Market -> Product)とが乗算されます。

  3. 結果が現在のメンバーの組合せのMisc_Expensesに割り当てられます。

ディメンション間演算子を使用すると、パフォーマンスに重大な影響が及ぶ場合があります。最適化のガイドラインは、「メンバー式でのディメンション間演算子」を参照してください。