@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に設定する必要があります。