@SHIFT
Essbaseの@SHIFT計算関数は、現在のメンバーと同一の他のすべてのメンバーを保持しながら、XrangeListの順序で、mbrNameから、前または次のn番目のセル値を返します。
構文
@SHIFT (mbrName [,n, XrangeList])
パラメータ
- mbrName
-
すべての有効な単一メンバー名、または単一メンバーを返す関数。
- n
-
オプションの符号付き整数。nに負の値を使用すると、@PRIOR関数で正の値を使用するのと同じ効果があります。nは、メンバー名などの参照でなく、数値である必要があります。
- XrangeList
-
メンバーの順次範囲を指定するオプションのパラメータ。範囲が指定されない場合、Essbaseは、時間としてタグ付けされたディメンションのレベル0メンバーを使用します。
有効なメンバー名、メンバー名のカンマ区切りリスト、ディメンション間メンバー、またはメンバー・セット関数か範囲関数(@XRANGEを含む)からの戻り値にできます。
rangeListとXrangeListについて詳しくは、範囲リスト・パラメータを範囲と財務関数トピックで参照してください。
ノート
@SHIFTは、nの値が変数であり、呼び出しの発生時、つまり、使用方法がNEXTまたはPRIOR、あるいはその両方である可能性が高いときのデータベース状態に応じて正から負に変化する可能性がある場合、@NEXTまたは@PRIORよりも、適切な自己文書化名として提供されます。
例
この例では、nパラメータとして-1が指定されているため、各月のPrev Assetは前月のAsset値を取得して導出されます。nパラメータとして2が指定されているため、各月のNext Avl Assetは、当月の後の2か月間からのAsset値を取得することによって導出されます。どちらの式にも範囲順序が指定されていないため、Timeとしてタグ付けされたディメンションのレベル0メンバーが使用されます。
"Prev Asset" = @SHIFT(Asset,-1);
"Next Avl Asset" = @SHIFT(Asset,2);
この例では、次のレポートが作成されます:
Jan Feb Mar Apr May Jun
=== === === === === ===
Asset 100 110 105 120 115 125
Prev Asset #MI 100 110 105 120 115
Next Avl Asset 105 120 115 125 #MI #MI
次の例では、YearディメンションがSample Basicに追加されていることを前提としています。
FIX("West")
"Prev Sales" = @SHIFT(Sales, -1, @XRANGE("2011"->"Sep", "2012"->"Mar"));
ENDFIX;
前述の計算は、XrangeListで指定した次の多次元範囲で実行されます。
2011->Sep
2011->Oct
2011->Nov
2011->Dec
2012->Jan
2012->Feb
2012->Mar