式での関数の使用
関数は、特殊な計算を実行し、メンバーまたはデータ値のセットを戻す事前定義済のルーチンです。 式では、次のタイプの関数を使用できます:
表18-2 機能タイプのリスト
関数のタイプ | 説明 |
---|---|
ブール |
TRUE (1)またはFALSE (0)の値を返すことで、条件付きテストを提供します。 たとえば、@ISMBR関数を使用して、現在のメンバーが指定されたいずれかのメンバーと一致するかどうかを判断できます。 「条件テスト」を参照してください。 |
算術 |
特殊な数学的計算を実行します。 たとえば、@AVG関数を使用して、メンバーのリストの平均値を戻すことができます。 「数学的操作」を参照してください。 |
リレーションシップ |
計算中にデータベース内のデータ値を検索します。 たとえば、@ANCESTVAL関数を使用して、指定したメンバーの組合せの祖先の値を戻すことができます。 「メンバー関係関数」を参照してください。 |
Range |
メンバーの範囲を別の関数またはコマンドの引数として宣言します。 たとえば、@SUMRANGE関数を使用して、指定した範囲内のすべてのメンバーの合計を戻すことができます。 「範囲関数」を参照してください。 |
Financial |
特殊な財務計算を実行します。 たとえば、@INTEREST関数を使用して単純な利息を計算したり、@PTD関数を使用して期間累計値を計算できます。 「財務機能」を参照してください。 |
メンバー・リストおよび範囲の指定 |
複数のメンバーまたはメンバーの範囲を指定します。 たとえば、@ISMBR関数は、現在計算中のメンバーが指定されたメンバーのリストまたは範囲のいずれかと一致するかどうかをテストします。 「メンバー・リストおよび範囲の指定」を参照してください。 |
メンバー・リストの生成 |
指定したメンバーに基づくメンバーのリストを生成します。 たとえば、@ICHILDREN関数を使用して、指定したメンバーとその子を戻すことができます。 「メンバー・リストの生成」を参照してください。 |
文字列操作 |
メンバーおよびディメンション名の文字列を操作します。 たとえば、名前に文字接頭辞を追加したり、名前から接尾辞を削除したり、名前を文字列として渡すことで、メンバー名を生成できます。 「メンバー名の操作」を参照してください。 |
ディメンション間のメンバーの組合せ |
ディメンション間演算子(->)を使用して、特定のメンバーの組合せのデータ値を指し示します。 「ディメンション間のメンバーの組合せの操作」を参照してください。 |
相互依存値 |
同じディメンションのメンバーの値を必要とするが、必要な値がまだ計算されていない式の場合。 「相互依存値の使用」を参照してください。 |
差異および差異率 |
予算値と実績値の差異または差異率を計算します。 「実績値と予算計画値の差異または差異率の計算」を参照してください。 |
Allocation |
親レベルで入力された値を子メンバー全体に割り当てます。 同じディメンション内または複数のディメンション間で値を割り当てることができます。 たとえば、@ALLOCATE関数を使用して、親レベルで入力された販売値を親の子に割り当てることができます。各子の割当ては、前年の販売のシェアによって決まります。 「値の割当て」を参照してください。 |
予測 |
データを平滑化または補間したり、将来の値を計算するためにデータを操作します。 たとえば、@TREND関数を使用して、履歴値への曲線フィッティングに基づく将来の値を計算できます。 「予測関数」を参照してください。 |
統計 |
詳細統計を計算します。 たとえば、@RANK関数を使用して、データ・セット内の指定したメンバーまたは指定した値のランクを計算できます。 「統計関数」を参照してください。 |
日付と時刻 |
計算式で日付と時間の特性を使用します。 たとえば、@TODATE関数を使用して、日付文字列を計算式で使用できる数値に変換できます。 「日付と時間の関数」を参照してください。 |
計算モード |
Essbaseで式セル、ブロック、ボトムアップおよびトップダウンの計算に使用する計算モードを指定します。 「計算モード機能」を参照してください。 |
ノート:
関数の省略形はサポートされていません。 一部のコマンドは省略形で動作する可能性がありますが、別の関数が同様の名前を持つ場合、Essbaseが間違った関数を使用する可能性があります。 正しい結果を得るには、完全な関数名を使用してください。
条件テスト
条件テストまたは一連の条件テストを使用する式を定義して、計算のフローを制御できます。
IFおよびENDIFコマンドは、「条件付きブロック」を定義します。 IFコマンドとENDIFコマンドの間の式は、テストがTRUE (1)を返した場合にのみ実行されます。 テストでFALSE (0)が返された場合は、ELSEおよびELSEIFコマンドを使用して代替操作を指定できます。 各ELSEコマンドに続く式は、前のテストでFALSE (0)が返された場合にのみ実行されます。 各ELSEIFコマンドに続く条件は、前のIFコマンドがFALSE (0)を返した場合にのみテストされます。
計算スクリプトで条件式を使用する場合は、この項の例に示すように、条件式をカッコで囲み、データベース・アウトラインのメンバーに関連付けます。
IFコマンドとともに、条件テストの結果に基づいてTRUEまたはFALSE (それぞれ1または0)を返す関数を使用できます。 これらの関数は、「ブール関数」と呼ばれます。
ブール関数を使用して、使用する式を決定します。 このディシジョンは、現在のメンバーの組合せの特性に基づきます。 たとえば、特定の計算を入力データを含むProductディメンションのメンバーに制限するには、@ISLEV(Product,0)に基づくIFテストで計算を進めます。
いずれかの関数パラメータが@ISMBR(Sales -> Budget)などのディメンション間メンバーである場合、TRUE (1)の値を戻すには、ディメンション間メンバーのすべての部分が現在のセルのプロパティと一致する必要があります。
次のブール関数は、条件を指定します:
表18-3 条件をテストするブール関数のリスト
関数 | 条件 |
---|---|
@ISACCTYPE |
現在のメンバーには指定された勘定科目タグ(Expenseタグなど)があります |
@ISANCEST |
現在のメンバーは指定したメンバーの祖先です |
@ISIANCEST |
現在のメンバーは、指定したメンバーまたは指定したメンバー自体の祖先です |
@ISCHILD |
現在のメンバーは指定したメンバーの子です |
@ISICHILD |
現在のメンバーは、指定したメンバーまたは指定したメンバー自体の子です |
@ISDESC |
現在のメンバーは指定したメンバーの子孫です |
@ISIDESC |
現在のメンバーは、指定したメンバーまたは指定したメンバー自体の子孫です |
@ISGEN |
指定されたディメンションの現在のメンバーは、指定された世代にあります |
@ISLEV |
指定されたディメンションの現在のメンバーは、指定されたレベルにあります |
@ISMBR |
現在のメンバーは指定したメンバーのいずれかと一致 |
@ISPARENT |
現在のメンバーは指定したメンバーの親です |
@ISIPARENT |
現在のメンバーは、指定したメンバーまたは指定したメンバー自体の親です |
@ISSAMEGEN |
(指定したメンバーと同じディメンションの)現在のメンバーは、指定したメンバーと同じ世代にあります |
@ISSAMELEV |
(指定したメンバーと同じディメンションの)現在のメンバーは、指定したメンバーと同じレベルにあります |
@ISSIBLING |
現在のメンバーは指定したメンバーの兄弟です |
@ISISIBLING |
現在のメンバーは、指定されたメンバーまたは指定されたメンバー自体の兄弟です |
@ISUDA |
指定されたUDAは、指定されたディメンションの現在のメンバーに存在 |
データベース・アウトラインに式を配置する場合は、IF、ELSE、ELSEIFおよびENDIFコマンドとブール関数のみを使用して計算のフローを制御できます。 計算スクリプトで追加の制御コマンドを使用できます。
計算スクリプトの開発方法および計算スクリプトを使用したEssbaseによるデータベースの計算方法の詳細は、「ブロック・ストレージ・データベース用の計算スクリプトの開発」を参照してください。
条件テストの例
次の式をデータベース・アウトラインのCommissionメンバーに適用できます。
次の例では、販売高が500000を超える場合に、販売高の1%でコミッションが計算されます:
IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;
計算スクリプトに式を配置する場合は、次のように式をCommissionメンバーに関連付ける必要があります:
Commission (IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;)
Essbaseはデータベースを循環し、次の計算を実行します:
-
IF文は、現在のメンバーの組合せのSalesの値が500000を超えているかどうかを確認します。
-
Salesが500000を超える場合、EssbaseはSalesの値に0.01を乗算し、その結果をCommissionに格納します。
次の例では、式は現在のメンバーの祖先をテストし、適切な給与計算式を適用します:
IF(@ISIDESC(East) OR @ISIDESC(West))
Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
Payroll = Sales * .11;
ELSE
Payroll = Sales * .10;
ENDIF;
計算スクリプトにFormulaを配置する場合は、次に示すように、そのFormulaを給与メンバーに関連付ける必要があります:
Payroll(IF(@ISIDESC(East) OR @ISIDESC(West))
Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
Payroll = Sales * .11;
ELSE
Payroll = Sales * .10;
ENDIF;)
Essbaseはデータベースを循環し、次の計算を実行します:
-
IF文は、@ISIDESC関数を使用して、Marketディメンションの現在のメンバーがEastまたはWestのいずれかの子孫であるかどうかを確認します。
-
Marketディメンションの現在のメンバーがEastまたはWestの子孫である場合、EssbaseはSalesの値に0.15を乗算し、次のメンバーの組合せに移動します。
-
現在のメンバーがEastまたはWestの子孫でない場合、ELSEIF文は@ISIDESC関数を使用して、現在のメンバーがCentralの子孫であるかどうかを確認します。
-
Marketディメンションの現在のメンバーがCentralの子孫である場合、EssbaseはSalesの値に0.11を乗算し、次のメンバーの組合せに移動します。
-
現在のメンバーがEast、WestまたはCentralの子孫でない場合、EssbaseはSalesの値に0.10を乗算し、次のメンバーの組合せに移動します。
「多ディメンション計算の概念について」を参照してください。
数学的操作
次の数学関数を使用すると、数式で多くの数学演算を実行できます:
表18-4 算術関数のリスト
関数 | 操作 |
---|---|
@ABS |
式の絶対値を返します |
@AVG |
指定されたメンバー・リストの値の平均値を戻します |
@EXP |
e (自然対数の底)の値を指定された式の累乗した値を戻します |
@FACTORIAL |
式の階乗を戻します |
@INT |
メンバーまたは式の次に低い整数値を戻します |
@LN |
指定された式の自然対数を戻します |
@LOG |
指定された式の指定された底に対数を戻します |
@LOG10 |
指定された式のbase-10対数を戻します |
@MAX |
指定されたメンバー・リストの式の中の最大値を戻します |
@MAXS |
ゼロおよび#MISSING値をスキップする機能を使用して、指定されたメンバー・リストの式の中の最大値を戻します |
@MIN |
指定されたメンバー・リスト内の式の最小値を戻します |
@MINS |
ゼロおよび#MISSING値をスキップする機能を使用して、指定されたメンバー・リストの式の中の最小値を戻します |
@MOD |
指定された2つのメンバーの除算によって生成された係数を戻します |
@POWER |
指定された累乗の指定されたメンバーの値を戻します |
@REMAINDER |
式の剰余値を戻します |
@ROUND |
指定された小数点以下の桁数に丸められたメンバーまたは式を戻します |
@SUM |
指定されたすべてのメンバーの値の合計を戻します |
@TRUNCATE |
式の切り捨てられた値を返します |
@VAR |
指定された2つのメンバー間の分散(差分)を戻します。 「実績値と予算計画値の差異または差異率の計算」を参照してください。 |
@VARPER |
指定された2つのメンバー間の差異率(差)を戻します。 「実績値と予算計画値の差異または差異率の計算」を参照してください。 |
メンバー関係関数
次の関係関数を使用すると、Essbaseで現在計算中のメンバーの組合せを使用して特定の値を検索できます:
表18-5 メンバー関係関数のリスト
関数 | 参照値 |
---|---|
@ANCESTVAL |
指定したメンバーの組合せの祖先の値 |
@ATTRIBUTEVAL |
現在のメンバーに関連付けられている、指定された数値または日付属性ディメンションの属性の数値 |
@ATTRIBUTESVAL |
現在のメンバーに関連付けられている指定されたテキスト属性ディメンションの属性のテキスト値 |
@ATTRIBUTEBVAL |
現在のメンバーに関連付けられている指定されたブール属性ディメンションの属性の値(TRUEまたはFALSE) |
@CURGEN |
指定されたディメンションの現在のメンバー組合せの世代番号 |
@CURLEV |
指定されたディメンションの現在のメンバーの組合せのレベル番号 |
@GEN |
指定したメンバーの世代番号 |
@LEV |
指定したメンバーのレベル番号 |
@MDANCESTVAL |
複数のディメンションにわたる指定したメンバーの組合せの祖先の値 |
@SANCESTVAL |
指定したメンバーの組合せの共有祖先の値 |
@PARENTVAL |
指定したメンバーの組合せの親値 |
@MDPARENTVAL |
複数のディメンションにわたる、指定したメンバーの組合せの親値 |
@SPARENTVAL |
指定したメンバーの組合せの共有の親値 |
@XREF |
現在のデータベースからの値の計算に使用される別のデータベースからのデータ値 |
@XWRITE |
別のEssbaseデータベースまたは同じデータベースへの値の書込みに使用されます |
範囲関数
次の範囲関数を使用すると、メンバーの範囲に対して関数を実行できます:
表18-6 範囲関数のリスト
関数 | Calculation |
---|---|
@AVGRANGE |
メンバーの範囲全体におけるメンバーの平均値 |
@CURRMBRRANGE |
Essbaseが現在計算しているメンバーの組合せの相対位置に基づくメンバーの範囲 |
@MAXRANGE |
メンバーの範囲全体におけるメンバーの最大値 |
@MAXSRANGE |
ゼロおよび#MISSING値をスキップする機能を持つ、メンバーの範囲内のメンバーの最大値 |
@MDSHIFT |
メンバーの範囲内の次のメンバーまたはn番目のメンバー(複数のディメンションの現在のメンバーと同一の他のすべてのメンバーを保持) |
@MINRANGE |
メンバーの範囲全体におけるメンバーの最小値 |
@MINSRANGE |
ゼロおよび#MISSING値をスキップする機能を持つ、メンバーの範囲内のメンバーの最小値 |
@NEXT |
メンバー範囲内の次またはn番目のメンバー |
@NEXT |
#MISSING、ゼロまたはその両方の値をスキップするオプションを使用した、メンバー範囲内の次またはn番目のメンバー |
@PRIOR |
メンバー範囲内の前またはn番目の前のメンバー |
@PRIORS |
#MISSING、ゼロまたはその両方の値をスキップするオプションを使用した、メンバー範囲内の前のメンバーまたはn番目のメンバー |
@SHIFT 場合によっては、@SHIFTPLUSまたは@SHIFTMINUS |
メンバー範囲内の次またはn番目のメンバー(現在のメンバーと同じで、指定されたディメンション内にある他のすべてのメンバーを保持) |
@SUMRANGE |
メンバーの範囲内で指定されたすべてのメンバーの値の合計 |
財務関数
次の財務関数を使用すると、式に財務計算を含めることができます:
表18-7 財務機能のリスト
関数 | Calculation |
---|---|
@ACCUM |
指定したメンバーまでの値の累計 |
@COMPOUND |
複利計算の進行 |
@COMPOUNDGROWTH |
指定したメンバーの一定範囲における複合成長を表す一連の値 |
@DECLINE |
定率法を使用して計算された、特定の期間の減価償却 |
@DISCOUNT |
範囲の最初の期間から割引額が見つかるまでの、指定したレートで割り引かれた値 |
@GROWTH |
指定した値の線形成長を表す一連の値 |
@INTEREST |
指定されたメンバーの指定されたレートでの単純金利 |
@IRR |
時間ディメンションまたは指定されたメンバー範囲にわたって計算され、少なくとも1つの投資(負)と1つの収益(正)を含む必要があるキャッシュ・フローの内部収益率。 0.07の初期推測が含まれます(初期推測は構成できません)。 |
@IRREX |
時間ディメンションまたは指定されたメンバー範囲にわたって計算され、少なくとも1つの投資(負)と1つの収益(正)を含む必要があるキャッシュ・フローの内部収益率。 初期推測およびアルゴリズムが実行できる反復数を構成する機能が含まれます。 |
@NPV |
投資の正味現在価値(一連の支払および収入に基づく) |
@PTD |
timeとしてタグ付けされたディメンションのメンバーの期間累計値 |
@SLN |
当期間のアセットが減価償却される可能性がある期間当たりの金額(期間の範囲全体で計算)。 使用される減価償却メソッドは定額減価償却です。 |
@SYD |
当期間のアセットが減価償却される可能性がある期間当たりの金額(期間の範囲全体で計算)。 使用される減価償却メソッドは、年の桁数の合計です。 |
ノート:
単一のメンバー式に、複数の財務関数(たとえば、@NPVと@SLN、または@NPVの複数のインスタンス)を含めることはできません。 複数の財務関数を必要とするメンバー式は、各式に単一の財務関数(たとえば、MemberName (@NPV(...)); Membername (@NPV(...))のみが含まれるように別々の式に分割する必要があります。
メンバー関連の関数
この項では、メンバーを参照する式の作成について説明します。
メンバー・リストおよび範囲の指定
一部の関数では、複数のメンバーを指定するか、メンバーの範囲を指定する必要があります。 たとえば、@ISMBR関数は、現在計算中のメンバーが指定されたメンバーのリストまたは範囲のいずれかと一致するかどうかをテストします。
次の表に、メンバーを指定するための構文を示します:
表18-8 メンバー・リストおよび範囲を指定する構文
メンバー・リストまたは範囲 | 構文 |
---|---|
1人のメンバー |
メンバー名。 例:
|
メンバーのリスト |
メンバー名のカンマ区切り(,)リスト。 例:
|
同じレベルのすべてのメンバーの範囲(2つの定義メンバーを含む) |
コロン(:)で区切られた2つの定義メンバー名。 例:
|
同じ世代のすべてのメンバーの範囲(2つの定義メンバーを含む) |
2つのコロン(::)で区切られた2つの定義メンバー名。 例:
|
関数によって生成されたメンバーのリストまたはメンバーの範囲 |
メンバー・リストの内容および対応する関数のリストは、「メンバー・リストの生成」を参照してください。 |
範囲とリストの組合せ |
各範囲、リストおよび関数はカンマ(,)で区切ります。 例:
または
|
いずれかを必要とする関数でメンバーのリストまたはメンバーの範囲を指定しない場合、Essbaseは時間としてタグ付けされたディメンションのレベル0のメンバーを使用します。 timeとしてタグ付けされているディメンションがない場合、Essbaseにエラー・メッセージが表示されます。
メンバー・リストの生成
メンバー・セット関数を使用すると、指定したメンバーまたはメンバー・リストに基づくメンバー・リストを生成できます。
表18-9 メンバー・セット関数のリスト
関数 | メンバー・リストの内容 |
---|---|
@ALLANCESTORS |
共有メンバーとして指定されたメンバーの祖先を含む、指定されたメンバーのすべての祖先。 この関数には、指定したメンバーは含まれません。 |
@IALLANCESTORS |
共有メンバーとして指定されたメンバーの祖先を含む、指定されたメンバーのすべての祖先。 この関数には、指定したメンバーが含まれます。 |
@ANCEST |
指定された世代またはレベルの指定されたメンバーの祖先 |
@ANCESTORS |
指定されたメンバー(オプションで、指定された世代またはレベルまで)のすべての祖先(指定されたメンバーは除く) |
@IANCESTORS |
指定したメンバー(オプションで、指定した世代またはレベルまで)のすべての祖先(指定したメンバーを含む) |
@LANCESTORS |
指定されたメンバーのリストのすべての祖先(オプションで、指定された世代またはレベルまで)。ただし、指定されたメンバーは含みません |
@ILANCESTORS |
指定されたメンバーのリストのすべての祖先(オプションで、指定された世代またはレベルまで) (指定されたメンバーを含む) |
@ATTRIBUTE |
指定した属性ディメンション・メンバーに関連付けられているすべての基本ディメンション・メンバー |
@WITHATTR |
指定した条件を満たす属性に関連付けられているすべての基本メンバー |
@BETWEEN |
名前文字列値が指定された2つの文字列トークンの間にある(またはその範囲に含まれる)すべてのメンバー |
@CHILDREN |
指定したメンバーのすべての子(指定したメンバーは含まない) |
@ICHILDREN |
指定したメンバーのすべての子(指定したメンバーを含む) |
@CURRMBR |
指定されたディメンションに対して計算されている現在のメンバー |
@DESCENDANTS |
指定されたメンバーのすべての子孫(オプションで、指定された世代またはレベルまで)。ただし、指定されたメンバーまたは共有メンバーの子孫ではありません |
@IDESCENDANTS |
指定したメンバーのすべての子孫(オプションで、指定した世代またはレベルまで)。共有メンバーの子孫は含みません |
@LDESCENDANTS |
指定されたメンバーのリストのすべての子孫(オプションで、指定された世代またはレベルまで)。ただし、指定されたメンバーは含みません |
@ILDESCENDANTS |
指定されたメンバーのリストのすべての子孫(オプションで、指定された世代またはレベルまで) (指定されたメンバーを含む) |
@RDESCENDANTS |
指定されたメンバーのすべての子孫(オプションで、指定された世代またはレベルまで)。共有メンバーの子孫は含みますが、指定されたメンバーの子孫は含みません |
@IRDESCENDANTS |
共有メンバーの指定されたメンバーおよび子孫を含む、指定されたメンバーのすべての子孫(オプションで、指定された世代またはレベルまで) |
@EQUAL |
指定されたトークン名と一致するメンバー名 |
@NOTEQUAL |
指定されたトークン名と一致しないメンバー名 |
@EXPAND |
メンバー・リスト内の各メンバーに対してメンバー・セット関数を呼び出すことで、メンバー検索を拡張 |
@GENMBRS |
指定されたディメンションの指定された世代のすべてのメンバー |
@LEVMBRS |
指定されたディメンションの指定されたレベルのすべてのメンバー |
@LIKE |
指定したパターンに一致するメンバー名。 |
@LIST |
複数のリスト引数を必要とする関数によって処理されるメンバーの個別のリスト |
@MATCH |
指定したワイルドカード選択に一致するすべてのメンバー |
@MBRCOMPARE |
比較基準に一致するメンバー名 |
@MBRPARENT |
指定したメンバーの親 |
@MEMBER |
文字列として指定された名前のメンバー |
@MERGE |
別の関数によって処理される2つのメンバー・リストのマージ済リスト |
@PARENT |
指定されたディメンションで計算される現在のメンバーの親 |
@RANGE |
あるディメンションの指定されたメンバーと別のディメンションの指定されたメンバー範囲を横断するメンバー・リスト |
@REMOVE |
一部のメンバーが削除されたメンバーのリスト |
@RELATIVE |
指定された世代またはレベルの、指定されたメンバーより上または下のすべてのメンバー |
@SHARE |
指定したメンバー間のすべての共有メンバーを識別するメンバー・リスト |
@SIBLINGS |
指定したメンバーのすべての兄弟(指定したメンバーではない) |
@ISIBLINGS |
指定したメンバーのすべての兄弟(指定したメンバーを含む) |
@LSIBLINGS |
データベース・アウトラインで指定されたメンバーの前にあるが、指定されたメンバーではないすべての兄弟 |
@RSIBLINGS |
データベース・アウトラインで指定されたメンバーの後に続くが、指定されたメンバーではないすべての兄弟 |
@ILSIBLINGS |
指定したメンバーを含む、データベース・アウトラインの指定したメンバーの前にあるすべての兄弟 |
@IRSIBLINGS |
指定したメンバーを含む、データベース・アウトラインの指定したメンバーに続くすべての兄弟 |
@SHIFTSIBLING |
メンバーから指定された距離にある兄弟 |
@NEXTSIBLING |
メンバーの次または右端の兄弟 |
@PREVSIBLING |
メンバーの前または左端の兄弟 |
@UDA |
「Essbaseサーバー」で定義された共通UDAを持つすべてのメンバー |
@XRANGE |
同じレベルで指定された2つの単一ディメンション・メンバーまたはディメンション間メンバーの範囲を識別するメンバー・リスト |
メンバー名の操作
メンバー名を文字列として操作できます。 次の表に、文字列操作関数を示します:
表18-10文字列操作関数のリスト
関数 | 文字列操作 |
---|---|
@CONCATENATE |
メンバー名または指定した文字列を別のメンバー名または文字列に追加した結果として、文字列を作成 |
@NAME |
メンバー名を文字列として戻します |
@SUBSTRING |
別の文字列またはメンバー名から文字の部分文字列を戻します |
ディメンション間のメンバーの組合せの操作
ディメンション間演算子を使用して、特定のメンバーの組合せのデータ値を指定します。 ハイフン(-)と大なり記号(>)を使用してディメンション間演算子を作成します。 ディメンション間演算子とメンバーの間にスペースを入れないでください。
次の図は、多ディメンション・キューブを簡略化したものです。ここで、JanはX軸の最初の列、SalesはY軸の4番目と一番上の行、ActualはZ軸の最初の行です。 この例では、Sales -> Jan -> Actualが単一のデータ値の交差です。
図18-2 単一のデータ値の指定

次の例では、その他費用を各市場の各製品に配賦し、ディメンション間演算子の使用方法を示します。 すべての市場におけるすべての製品のMisc_Expensesの価値がわかっています。 この式では、Product -> Marketの各組合せに合計Misc_Expenses値の割合が配賦されます。 割当は、各市場の各製品の販売高に基づきます。
Misc_Expenses = Misc_Expenses -> Market -> Product *
(Sales / ( Sales -> Market -> Product));
Essbaseはデータベースを循環し、次の計算を実行します:
-
現在のメンバーの組合せの販売値を、すべての市場およびすべての製品の合計販売値で除算します(Sales -> Market -> Product)。
-
ステップ1で計算した値に、すべての市場およびすべての製品のMisc_Expenses値を乗算します(Misc_Expenses -> Market -> Product)。
-
現在のメンバーの組合せに対して、結果をMisc_Expensesに割り当てます。
ディメンション間演算子を使用すると、パフォーマンスに大きな影響を与える可能性があります。 最適化のガイドラインについては、「ディメンション間演算子の使用」を参照してください。
予測関数
予測関数を使用すると、データを補間したり、将来の値を計算するためにデータを操作できます。
表18-11予測関数のリスト
関数 | データ操作 |
---|---|
@MOVAVG |
移動平均をデータ・セットに適用し、リスト内の各用語を後続平均に置き換えます。 この関数は、データ・セットを平滑化のために変更します。 |
@MOVMAX |
データ・セットに移動最大値を適用し、リスト内の各用語を末尾の最大値に置き換えます。 この関数は、データ・セットを平滑化のために変更します。 |
@MOVMED |
データ・セットに移動中央値を適用し、リスト内の各用語を末尾の中央値に置き換えます。 この関数は、データ・セットを平滑化のために変更します。 |
@MOVMIN |
データ・セットに移動最小値を適用し、リスト内の各用語を後続最小値で置換します。 この関数は、データ・セットを平滑化のために変更します。 |
@MOVSUM |
移動合計をデータ・セットに適用し、各用語を末尾の合計に置き換えます。 この関数は、データ・セットを平滑化のために変更します。 |
@MOVSUMX |
移動合計をデータ・セットに適用し、各用語を末尾の合計に置き換えます。 合計する数値に達する前にメンバーに値を割り当てる方法を指定します。 この関数は、データ・セットを平滑化のために変更します。 |
@SPLINE |
データ・ポイントのセットに平滑化ラインを適用します。 ラインは、データを滑らかにしたり補間するために使用される数学的曲線です。 |
@TREND |
将来の値を計算し、履歴値に適合する曲線に基づいて計算します。 |
統計関数
統計関数を使用すると、Essbaseで高度な統計を計算できます。
表18-12統計関数のリスト
関数 | 計算値 |
---|---|
@CORRELATION |
2つのパラレル・データ・セット間の相関係数 |
@COUNT |
指定したデータ・セット内の値の数 |
@MEDIAN |
指定されたデータ・セット内の中央値(中間値) |
@MODE |
指定されたデータ・セット内のモードまたは最も頻繁に発生する値 |
@RANK |
指定したデータ・セット内の指定したメンバーまたは値のランク |
@STDEV |
指定したメンバーの、サンプルに基づく標準偏差 |
@STDEVP |
指定したメンバーの母集団全体に基づく標準偏差 |
@STDEVRANGE |
指定したメンバーの範囲と交差する標準偏差 |
@VARIANCE |
指定されたデータ・セットの、サンプルに基づく分散 |
@VARIANCEP |
指定したデータ・セットの母集団全体に基づく分散 |