@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ディメンション(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)のレベル0のメンバーが含まれています。 Yearディメンションで計算されている現在のメンバーがJanの場合、startOffsetおよびendOffsetパラメータによってこのリストが(Jan, Feb)に減らされます。 全範囲リストにJanより前のメンバーがないため、2つのメンバーのみが戻されます: Jan自体とそれ以降のメンバー、Feb.計算される現在のメンバーがFebの場合、サブセット・リストには3つのメンバーが含まれます: Jan, Feb, Mar.
-
現在、この関数は、@AVGRANGE、@MAXRANGE、@COMPOUND、@SHIFTなどの範囲および財務関数内でのみ使用できます。
例
例 1
平均インベントリは、年の最初の月から現在の期間に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
インベントリ回転率は、期間累計販売を合計し、その結果を平均インベントリで割って計算されます。
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ディメンション(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)のすべてのレベル0メンバーが含まれます。 startOffsetおよびendOffsetパラメータは、このリストを(Jan, Feb)に減らします。 全範囲リストにJanより前のメンバーがないため、2つのメンバーのみが戻されます: JanおよびFeb。計算されている現在のメンバーがFebの場合、サブセット・リストには3つのメンバーが含まれます: Jan, Feb, Mar.
ノート:
この例で示す使用方法では、RTDEPCALCOPTIMIZE構成をFALSEに設定する必要があります。