@SHIFTPLUS
@SHIFT、@PRIORまたは@NEXTのかわりに使用して、算式が次の基準を満たす場合にパフォーマンスを向上させることができます:
-
算式はCELLモードで実行されています。
-
式には、次のいずれかのパターンがあります:
X = Y + @SHIFT(mbrName [,n, XrangeList])
または:
X = Y + @PRIOR(mbrName [,n, XrangeList])
または:
X = Y + @NEXT(mbrName [,n, XrangeList])
これらの基準を満たす場合は、パフォーマンスを向上させるために、ブロック・モードで式を実行する@SHIFTPLUSを使用して式をリライトすることを検討してください。
Note: この関数をセル・モードで実行される関数と組み合せて使用すると、依存性を解決するためにセル・モードでの実行が必要になる場合があります。 式がセル・モードで実行されたかどうかを判断するには、ログで次の情報メッセージを確認してください: Formula for member [mbrName] will be executed in [CELL] mode
。 セル・モードを使用する関数の詳細は、@CALCMODEのトピックを参照してください。
構文
@SHIFTPLUS (mbrName1, mbrName2 [,n, XrangeList])
パラメータ
- mbrName1
-
任意の有効な単一メンバー名、または単一メンバーを戻す関数。
- mbrName2
-
任意の有効な単一メンバー名、または単一メンバーを戻す関数。
- n
-
オプションの符号付き整数。nは、メンバー名などの参照ではなく、数値である必要があります。 @SHIFTPLUSを使用して@NEXT関数を置き換える場合は、nの値として
1
を使用します。 @SHIFTPLUSを使用して@PRIOR関数を置き換える場合は、nの値として-1
を使用します。 デフォルト値は+1です。 - XrangeList
-
メンバーの順次範囲を指定するオプションのパラメータ。 範囲が指定されていない場合、EssbaseはTimeとしてタグ付けされたディメンションのレベル0のメンバーを使用します。
有効なメンバー名、メンバー名のカンマ区切りリスト、ディメンション間メンバー、またはメンバー・セット関数または範囲関数(@XRANGEを含む)からの戻り値を指定できます。
rangeListおよびXrangeListの詳細は、「範囲関数と財務関数」のトピックの「範囲リスト・パラメータ」を参照してください。
例
次の例は、@SHIFT()を使用した式を示しています。
Sales = Loss + @SHIFT(Sales, 1);
@SHIFTPLUS()を使用してパフォーマンスを向上させる式を次に示します:
@SHIFTPLUS (Loss, Sales, 1);
次の例は、YearディメンションがSample Basicに追加されていることを前提としています。
FIX("North")
Sales = @SHIFTPLUS (COGS, Sales, 1, @XRANGE("2011"->"Sep", "2012"->"Mar"));
ENDFIX;
前述の計算は、XrangeListで指定された次の多ディメンション範囲で実行されます:
2011->Sep
2011->Oct
2011->Nov
2011->Dec
2012->Jan
2012->Feb
2012->Mar