Average

计算帐户在多个期间的平均值。

返回值

返回一个字符串,表示要在 HS.EXP 函数中使用的正确表达式。

语法

Average (PointOfView, Periods)

表 12-3 Average 函数的语法

参数 有效值

PointOfView

帐户、Custom1….4、ICP 成员的有效组合,例如 "A#CASH.C1#[None].I#[ICP Top]"

对于流类型帐户,该函数仅计算周期值的平均值。

Periods

必须是下列值之一:

YTD - 指定年初至今选项将计算从当年第一个期间开始的累计数据的平均值。

Periodic - 指定周期性选项将仅计算当前期间和当年的前一个期间的平均值。对于第一个期间,此值将与源中值相同。

[任何正整数值] - 指定要计算其平均值的期间数。对于月类别中的滚动年平均值,指定 12

详细说明

此函数计算帐户在指定数量的以前期间的平均值。如果源是余额类型帐户,则平均值将基于输入的数据。如果源是流类型帐户,则平均值将仅基于周期数据。

Periods 参数不同,派生的平均值也不同。

  • 如果 Periods 参数为 YTD,则平均值为当年迄今为止的所有期间的总和除以当前期间数。

  • 如果 Periods 参数为 Periodic,则平均值为当前期间与其之前的期间的总和除以二。如果当前期间是当年的第一个期间,则平均值与源中值相同。

  • 如果 Periods 参数是一个数值,则平均值为当前期间与指定期间数前推的每个之前期间的总和除以指定数值。

示例

对于 2014 年 1 月、2 月和 3 月,SALES 帐户将根据 Average 自定义函数中使用的 Periods 参数返回以下值。为正在处理的方案设置的默认视图是 YTD。

表 12-4 Average 函数的示例

帐户 Oct2013 Nov2013 Dec2013 Jan2014 Feb2014 Mar2014

A#Sales

9,000

10,500

11,700

800

1,900

3,200

Average ("A#Sales", "YTD)"

不适用

不适用

不适用

800

950

1,067

Average ("A#Sales", "Periodic)"

不适用

不适用

不适用

800

950

1,200

Average ("A#Sales", "3")

不适用

不适用

不适用

1,167

1,033

1,067

示例脚本

' sample statement written in the calling routine
Sub Calculate()
Hs.Exp "A#AVG_SALES = "& Average("A#Sales", "12")
End Sub
' programming of the AVERAGE function
FUNCTION Average(strPOV,strPERIOD)
DIM nPERIOD
DIM strCUM
DIM i
strPOV = UCASE(strPOV)
strPERIOD = UCASE(strPERIOD)
IF strPERIOD = "PERIODIC" THEN
IF HS.PERIOD.ISFIRST = TRUE THEN
nPERIOD = 1
ELSE
    nPERIOD = 2
END IF
ELSEIF strPERIOD = "YTD" THEN
nPERIOD = HS.PERIOD.NUMBER()
ELSEIF CINT(strPERIOD) > 0 THEN
nPERIOD = CINT(strPERIOD)
ELSE
EXIT FUNCTION
END IF
FOR i = 0 TO nPERIOD-1
IF i = 0 THEN
strCUM = strPOV &".W#PERIODIC"
ELSE
strCUM = strCUM &"+" & strPOV &".W#PERIODIC.P#CUR-" &i
END IF
NEXT
Average = "" (("" & strCUM &"")/""& nPERIOD &"")""
END FUNCTION