CALCULATE ROW
Essbaseレポート・ライターのCALCULATE ROWコマンドは、名前付き行を作成し、それを行名またはラベルに関連付けます。これは、変数を宣言することに似ています。このコマンドでは、定数、他の計算された行および演算子で構成される方程式として、演算(+、_、*、/またはOFF)を指定することもできます。
方程式は、宣言の時点で評価されます。演算子が指定されている場合、続く出力行には、計算済行に格納された結果を使用して演算子が適用されます。
これは、小計や合計を取得するための一連の行を集約するのに役立ちます。演算子は、SETROWOPを使用して任意の時点でリセットできます。CALCULATE ROWコマンドに方程式も演算子も指定されていない場合は、+演算子が指定されているものとして処理されます。
SETROWOPでは、後続の出力データ行すべてに適用される計算演算子が定義されます。PRINTROWを使用して、新しく作成した行に計算結果を表示します。
構文
1:
{ CALCULATE ROW "newRow" [ columnNo ] = expression }
2:
{ CALCULATE ROW "newRow" [ operator ]}
パラメータ
ノート
-
レポート内に複数の行名列がある場合のために、行名に複数のレベルをチルダ(~)記号で区切って使用できます。たとえば、計算済行の名前がActual~Salesで、レポート内の(PRINTROWを使用した)出力に2つ以上の行名の列がある場合、結果は、Salesは右端の行名列に、Actualはその左の行名列になります。複数レベルの行名が、行名列が1つしかないレポートで使用されている場合は、名前の右端部分のみがレポートに表示されます。
-
CALCULATE ROWは、500行以下を返すように制限されています。
-
行名の事実上の長さは、出力先の列の幅で制限されます。隣の列の情報を上書きする右側の文字は切り捨てられます。
-
(列ディメンションのメンバー選択を使用して)列を定義する前のポイントで、複数値の配列を計算済行に格納するには、NSを使用して、使用するより多い列数を事前に割り当てられます。指定する値がデータ列よりも少ない場合、配列を使用した処理は最後の配列値の後で停止され、その演算子に基づく残りの列に変更は加えられません。余分な列が現在欠落している場合、それらは欠落状態のままになります。それらが非欠落の場合は、現在の値が保持されます。
-
式は常に左から右に計算されます。グループ化に丸カッコは使用できない場合があります。
-
式にメンバー名を含められません。
-
列を指定するコマンドでは、列の元の順番で決められているとおりの、有効なデータ列番号を使用する必要があります。
-
式に含まれるすべての演算子の前後には、単一スペースを付ける必要があります。
-
整数および浮動小数点の定数は、単一エントリまたは配列のメンバーとして式内でサポートされます。
-
行の計算は、CALCULATE ROW、SETROWOPおよびPRINTROWの3つのコマンドを使用して作成されます。
例
次のサンプルでは、実行できる行計算を示します。例のTotal Salesは、メンバー名ではなく、計算済行を表すことに注意します。
定数2で除算して"Avg Sales"を計算するには、次のようにします。
{ CALCULATE ROW "Avg Sales" = "Total Sales" / 2 }
計算済行Total Salesの最初の6つのデータ列を6つの係数に乗算し、結果を計算済行Factored Salesに格納するには、次のようにします。
{ CALCULATE ROW "Factored Sales" = "Total Sales" * [1.0 1.3 1.9 2.3 3.0
3.7 ] }
後で計算済行の計算またはPRINTROWの出力(あるいはその両方)で使用するために、Factorsの最初の5つの列の5つの係数を格納するには、次のようにします。
{ CALCULATE ROW "Factors" = [ 1.3 2.6 3.1 2.3 5 ] }
計算済行Ending Salesのすべての列に、Total Salesの7つ目の列の値に1000を乗算して格納するには、次のようにします。
{ CALCULATE ROW "Ending Sales" = "Total Sales" 7 * 1000 }
Ending Salesの列7の値を、行Total Salesの対応する値に設定するには、次のようにします。
{ CALCULATE ROW "Ending Sales"7 = "Total Sales" }
"Total"
はこの計算で自己参照し、自身を1000で割ります。
{ CALCULATE ROW "Total" = "Total" / 1000. }
1つの式で使用される様々な演算を示すには、次のような式を使用します。
{ CALCULATE ROW "xyz" = [ 11 12.3 -6 ] / 7 + "abc"2 % 4300. + 10 }
この式は、配列内の3つの値を定数7で除算し(ここでデータ列が3より多い場合、余分な列は#Missingのままになります)、abcの列2の値を各列に加算し、結果行の値を定数4300の割合として計算し、定数10をすべての列に加算して、最終結果をxyzに格納します。データ列が3つより多い場合、余分な列は最後の演算の前に#Missingであったため、その結果は10になることに注意します。