この関数は、ソース勘定科目の単一の期間値(たとえば、P#[Year])を、プロファイル勘定科目(収益プロファイル、4-4-5など)に定義されているプロファイルに基づいて、宛先勘定科目のすべての期間に配賦します。
戻り値
戻り値はありません。
構文
Spread(Destination,Source,Factor,FactorN,FactorD,Temp,Per)
表12-24 Spread関数の構文
パラメータ | 有効な値 |
---|---|
Destination |
勘定科目、ICP、カスタム1から4のメンバーの有効な組合せである有効な宛先POV。 |
Source |
ディメンション・メンバーの有効な組合せである有効なソースPOV。ソースPOVには、P#[Year]などの単一の期間を含める必要があります。単一の期間数が分散される数です。 |
Factor |
有効なソースPOV。Factorは、配賦係数の格納に使用される勘定科目です。 |
FactorN |
有効なソースPOV。FactorNは、分散配賦の基準として使用される分子係数です。 |
FactorD |
有効なソースPOV。FactorDは、分散配賦の基準として使用される分母係数です。 |
Temp |
有効な宛先勘定科目。Tempは、ソース値を一時的に格納する勘定科目です。 |
Per |
Januaryなど、タイムフレームの最初の期間の名前を定義する期間文字列。Temp値は最初の期間に格納され、パラメータは計算でこの値を参照する必要があります。 |
詳細説明
この関数は、Profile POV (Revenueプロファイル、4-4-5など)に定義されているプロファイルに基づいて、宛先POVのすべての期間にソースPOVの単一の期間値(P#[Year]など)を配賦します。
時間ベースの配賦は、まず1年間の金額が入力されてから、適切なプロファイルに基づいて期間全体に金額が配賦される、予算策定アプリケーションに特に適しています。
ソースPOVには、単一の期間を含める必要があります。期間は通常P#[Year]ですが、P#Januaryなど、任意の単一の期間にすることが可能です。
ソースPOVの値は、計算により一時勘定科目に格納されます。ソース勘定科目と宛先勘定科目が通常同一であるため、このようにする必要があります。これが当てはまる場合、P#[Year]の値は、計算が1つの期間から次の期間へ進むにつれて変わります。そのため、まず値を格納し、すべての期間で参照できるようにする必要があります。
呼出しルーチンに変数を設定し、Destination、Source、Profile、TempおよびPeriod1パラメータを定義するSpread関数に渡すことをお薦めします。また、呼出しルーチンの変数名をSpread関数と同一になるように設定することもお薦めします。
例
Telephone勘定科目の年の値が、4-4-5という四半期ごとの比率を使用して期間全体に配賦されます。
SPREAD関数から戻される結果は次のとおりです:
HS.EXP "A#TempTelephone.C1#[None] = A#Telephone.C1#[None].P#[Year]" (Where Period.Number = 1)
HS.EXP "A#Telephone.C1#[None] = A#TempTelephone P#January * E.Globals.A#Profile445.C1#[None].P#Cur / E.Globals.A#Profile445.C1#[None].P#[Year]
サンプル・スクリプト
このスクリプトには、次の情報が含まれます:
呼出しルーチンで記述されたサンプル文。
呼出しルーチンに設定され、Spread関数に渡される変数。
Spread関数と同一になるように設定された呼出しルーチンの変数名。
Sub Calculate()
Dim Destination Dim Source Dim Factor Dim FactorN Dim FactorD Dim Temp Dim Per
Source = "A#Telephone.C1#[None].P#[Year]" Destination = "A#Telephone.C1#[None]" Factor = "A#Factor.C1#[None]" FactorN = "E#Globals.A#Profile445.C1#[None].P#CUR" FactorD = "E#Globals.A#Profile445.C1#[None].P#[Year]" Temp = "A#TempTelephone.C1#[None]" Per = "January"
Call Spread(Destination,Source,Factor, FactorN,FactorD,Temp,Per)
End Sub
' Beginning of the Spread function
Sub Spread(Destination,Source,Factor,FactorN,FactorD,Temp,Per)
If HS.Period.Number = 1 Then
HS.Exp Temp & " = " & Source
End If
HS.Clear Factor HS.EXP Factor & " = " & FactorN & " / " & FactorD
HS.Clear Destination HS.EXP Destination & " = " & Temp & ".P#" & Per & " * " & Factor
End Sub