指定された勘定科目の前の期間の合計値を計算します。
戻り値
HS.EXP関数の一部として使用される正しい式を表す文字列が戻されます。
構文
Cumulative (PointOfView, View, NumPeriod)
表12-5 Cumulative関数の構文
パラメータ | 有効な値 |
---|---|
PointOfView |
A#CASH.C1#[None].I#[ICP Top]など、勘定科目、カスタム1から4、ICPメンバーの有効な組合せ |
ビュー |
次のいずれかの値にする必要があります: "" " " (二重引用符) - 処理中のシナリオに定義されているデフォルト・ビューに基づきます(YTDまたはPeriodic)。 YTD - ユーザーにより年次累積オプションが指定され、シナリオに設定されたデフォルト・ビューが上書きされます。 Periodic - 期別オプションが指定され、シナリオに設定されたデフォルト・ビューが上書きされます。 |
NumPeriod |
累計する現在のシナリオ内の期間数を表す整数で、現在の期間から開始されます。 NumPeriodは0または負数で、関数は現在の年の初めから集計します。 |
詳細説明
この関数は、指定された期間の合計、または指定された勘定科目の年次累計の合計を計算します。デフォルトでは、累積されたデータのビューはシナリオのデフォルトです; ただし、フロー・タイプの勘定科目の場合は上書きできます。
ViewパラメータがYTDの場合、この関数では年次累計値が累計されます。
ViewパラメータがPeriodicの場合は、期間の値が累計されます。
Viewパラメータが空白( " " )の場合は、シナリオのデフォルト・ビューを使用してデータが累計されます。
例
CASH勘定科目では、Cumulative関数で使用されるNumberパラメータに基づいて、2014年1月、2月、3月に次の値が戻されます。
SALES勘定科目では、Cumulative関数で使用されるViewおよびNumberパラメータの両方に基づいて、2014年1月、2月、3月に次の値が戻されます。処理中のシナリオに設定されたデフォルト・ビューはYTDです。
表12-6 Cumulative関数の例
勘定科目 | Oct2013 | Nov2013 | Dec2013 | Jan2014 | Feb2014 | Mar2014 |
---|---|---|---|---|---|---|
A#Cash |
1,000 |
1,500 |
1,200 |
800 |
1,100 |
1,300 |
Cumulative ("A#Cash","0") |
N/A |
N/A |
N/A |
800 |
1,900 |
3,200 |
Cumulative("A#Cash", "3") |
N/A |
N/A |
N/A |
3,500 |
3,100 |
3,200 |
A#Sales |
9,000 |
10,500 |
11,700 |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "0") |
N/A |
N/A |
N/A |
800 |
2,700 |
5,900 |
Cumulative("A#Sales", "Periodic", "0") |
N/A |
N/A |
N/A |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "Periodic", "3") |
N/A |
N/A |
N/A |
3,500 |
3,100 |
3,200 |
サンプル・スクリプト
' sample statement written in the calling routine
Sub Calculate()
HS.EXP "A#TOT_Cash =" &Cumulative("A#Cash","" ,0)
End Sub
' programming of the Cumulative function
Function Cumulative(StrPov, StrVIEW, nPERIOD)
DIM strCUM DIM i
IF nPERIOD <= 0 THEN
nPERIOD = HS.PERIOD.NUMBER() - 1
ELSE
nPERIOD = nPERIOD - 1
END IF
IF strVIEW = "" THEN
strVIEW = HS.SCENARIO.DEFAULTVIEW("")
END IF
strPOV = UCASE(strPOV) strVIEW = UCASE(strVIEW)
IF strVIEW = "PERIODIC" THEN
strVIEW = ".W#PERIODIC"
ELSEIF strVIEW = "YTD" THEN
strVIEW = ".W#YTD"
ELSE
EXIT FUNCTION
END IF
FOR i = 0 TO nPERIOD
IF i = 0 THEN
strCUM = strPOV & strVIEW
ELSE
strCUM = strCUM &"+" & strPOV & strVIEW &".P#CUR-" &i
END IF
NEXT
Cumulative = ""("" & strCUM &"")
END FUNCTION