@CURRMBRRANGE
Essbaseの@CURRMBRRANGE計算関数は、計算中の現在のメンバーの相対位置に基づいているメンバー・リストを生成します。
構文
@CURRMBRRANGE (dimName, {GEN|LEV}, genLevNum, [startOffset], [endOffset])
パラメータ
- dimName
-
範囲リストを返すディメンションの名前。
- GEN|LEV
-
返される範囲リストが、ディメンション内の世代またはレベルに基づくかどうかを定義します。
- genLevNum
-
返される範囲リストの絶対世代番号またはレベル番号を定義する整数値。
- startOffset
-
返される範囲の最初のメンバーを定義します。
-
null値は、指定したgenLevNumの最初のメンバーを返します。
-
整数値は、計算中の現在のメンバーに対する相対的なメンバー名を返します。
-
負の値は、現在のメンバーがディメンション内で計算される前のメンバーを指定します。
-
0の値は、現在計算中のメンバーの名前を返します。
-
正の値は、ディメンション内で現在のメンバーが計算された後のメンバーを指定します。
-
- endOffset
-
返される範囲内の最後のメンバーを定義します。
-
null値は、指定したgenLevNumの最後のメンバーを返します。
-
整数値は、計算中の現在のメンバーに対する相対的なメンバー名を返します。
-
負の値は、現在のメンバーがディメンション内で計算される前のメンバーを指定します。
-
0の値は、現在計算中のメンバーの名前を返します。
-
正の値は、ディメンション内で現在のメンバーが計算された後のメンバーを指定します。
-
ノート
-
この関数は、FIX文内では使用できません。
-
この関数の最初の3つのパラメータ(dimName、{GEN|LEV}、genLevNum)は、メンバー範囲リストを提供します。startOffsetパラメータとendOffsetパラメータは、このリストのサブセットを作成します。例として、Sample Basicデータベースのコンテキストで次の構文を検討します。
@CURRMBRRANGE(Year,LEV,0,-1,1)
この例では、全範囲リストにYearディメンションのレベル0メンバー(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)が含まれています。Yearディメンションで計算中の現在のメンバーがJanの場合、startOffsetパラメータとendOffsetパラメータは、このリストを(Jan, Feb)に減らします。全範囲リストにJanよりも前のメンバーがないため、Jan自体とその次のメンバーであるFebの2つのメンバーのみが返されます。計算中の現在のメンバーがFebである場合、サブセット・リストにはJan、Feb、Marの3つのメンバーが含まれます。
-
現在、この関数は、@AVGRANGE、@MAXRANGE、@COMPOUND、@SHIFTなどの範囲および財務関数内でのみ使用できます。
例
例1
Average Inventoryは、その年の最初の月から現在の期間に1期間を加えた開始在庫を合計し、その結果を現在までの期間数に1期間を加えた数で除算することによって計算されます。この計算は、@AVGRANGE関数のrangeListパラメータ内で@CURRMBRRANGE関数を定義することによって実行されます。
"Average Inventory" = @AVGRANGE(SKIPNONE,"Opening Inventory",
@CURRMBRRANGE(Year, LEV, 0, , 1));
この例では、次の結果が生成されます。
Jan Feb Mar Apr Nov Dec
Opening Inventory 100 110 120 130 . . . 200 210
Average Inventory 105 110 115 120 . . ..155 155
startOffsetにnull値が指定されているため、平均演算は常に範囲リストの最初のメンバーであるJanから始まります。endOffsetパラメータである1は、計算中の現在のメンバーの次のメンバーが各平均演算に含まれることを指定します。したがって、Average Inventory->Janの場合、JanとFebの値の平均が算出されます。<Average Inventory->Febの場合、Jan、Feb、Marの値の平均が算出され、以後同様に計算されます。範囲リストのDecの後にメンバーがないため、NovとDecの値は同じです。
例2
Inventory Turnoverは、期間累計Salesを合計し、その結果をAverage Inventoryで除算することによって計算されます。
Turnover = @SUMRANGE(Sales,@CURRMBRRANGE(Year, LEV, 0, , 0))/"Average Inventory"
これにより、次の結果が生成されます。
Jan Feb Mar Apr
Average Inventory 110 116.7 122.5 126
Sales 40 44 48 52
Turnover 0.36 0.72 1.08 1.46
例3
次の式について考えます。
@CURRMBRRANGE(Year,LEV,@CURLEV("Year"),-1,1)
全範囲リストには、特定のレベルのYearディメンションのメンバーが含まれています。このレベルは、計算中の現在のメンバーのレベルを取得することによって決定されます。たとえば、計算中の現在のメンバーがJanである場合、全範囲リストにYearディメンションのすべてのレベル0メンバー(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)が含まれています。startOffsetパラメータとendOffsetパラメータは、このリストを(Jan, Feb)に減らします。全範囲リストにJanよりも前のメンバーがないため、JanとFebの2つのメンバーのみが返されます。計算中の現在のメンバーがFebである場合、サブセット・リストにはJan、Feb、Marの3つのメンバーが含まれます。
ノート:
この例で示されている使用方法では、RTDEPCALCOPTIMIZE構成をFALSEに設定する必要があります。