@SHIFTPLUS
Essbaseの@SHIFTPLUS計算関数は、範囲内のメンバー名から指定された距離にあるセル値を返します。特定の式パターンに対して、@SHIFT、@PRIORまたは@NEXTを使用するよりもパフォーマンスを最適化できます。
この関数は、式が次の基準を満たしている場合に、@SHIFT、@PRIOR、@NEXTのかわりに使用してパフォーマンスを向上させることができます:
-
式はCELLモードで実行されています。
-
式に次のいずれかのパターンがあります。
X = Y + @SHIFT(mbrName [,n, XrangeList])
または:
X = Y + @PRIOR(mbrName [,n, XrangeList])
または:
X = Y + @NEXT(mbrName [,n, XrangeList])
これらの条件を満たしている場合、SHIFTPLUSを使用して式を書き直すことを検討してください。そうすることで、式がブロック・モードで実行され、パフォーマンスが向上します。
ノート: この関数をセル・モードで実行される関数と組み合せて使用する場合、依存関係を解決するために、セル・モードでの実行が必要になる場合があります。式がセル・モードで実行されたかどうかを確認するには、ログで「メンバー[%s]の式は[%s]モードで実行されます。
」情報メッセージを確認します。セル・モードを使用する関数については、@CALCMODEトピックを参照してください。
構文
@SHIFTPLUS (mbrName1, mbrName2 [,n, XrangeList])
パラメータ
- mbrName1
-
すべての有効な単一メンバー名、または単一メンバーを返す関数。
- mbrName2
-
すべての有効な単一メンバー名、または単一メンバーを返す関数。
- n
-
オプションの符号付き整数。nは、メンバー名などの参照でなく、数値である必要があります。SHIFTPLUSを使用して@NEXT関数を置き換える場合は、
1
をnの値として使用します。SHIFTPLUSを使用して@PRIOR関数を置き換える場合は、-1
をnの値として使用します。デフォルト値は+1です。 - XrangeList
-
メンバーの順次範囲を指定するオプションのパラメータ。範囲が指定されない場合、Essbaseは、時間としてタグ付けされたディメンションのレベル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