MOVINGAVERAGEファンクション(省略形はMVAVG)は、指定されたディメンションにわたってディメンション化変数または式の一連の平均を計算します。ステータスにあるディメンション値ごとに、MOVINGAVERAGEファンクションは、現行ディメンション値を基準にして指定範囲内のデータの平均を計算します。
平均が計算されるデータのディメンションが1つのみの場合、MOVINGAVERAGEによって生成される一連の平均は、ステータスにあるディメンション値ごとに1つです。平均が計算されるディメンション以外のディメンションがデータに存在する場合、MOVINGAVERAGEによって生成される一連の平均は、他のディメンションのステータス・リストにある値の組合せごとに別個です。
戻り値
DECIMAL
構文
MOVINGAVERAGE(expression, start, stop, step, -
[dimension [STATUS|limit-clause]])
引数
平均を計算する値を持つ数値変数または計算。たとえば、units
、sales-expense
など。
平均を計算する範囲の起点を指定する整数。この範囲は、dimensionの現行値を基準にして指定します。0
(ゼロ)は現行値を指し、-1
は現行値の直前の値を指します。負のstart値の前にはカンマが必要です。
各平均の基になるデータは、指定された範囲のディメンション値であり、平均が計算されるディメンション値を基準にしてその前または後の値が含まれます。異なるディメンション・ステータスを指定するSTATUSキーワードまたはlimit-clause引数を使用しないかぎり、MOVINGAVERAGEはデフォルトのステータスを使用して範囲内の値をカウントします。
平均を計算する範囲の終点を指定する整数。負のstop値の前にはカンマが必要です。
平均の計算の対象を、範囲内のすべての値、1つおきの値、2つおきの値などにするかどうかを指定する正の整数。stepの値が1
の場合、すべての値の平均です。2
の場合、1番目、3番目、5番目(以降同様)の値の平均です。たとえば、今月がJun96
であり、startとstopの値がそれぞれ-3
と3
の場合、stepの値を2
にすると、Mar96
、May96
、Jul96
およびSep96
の平均が計算されます。
移動平均の計算されるディメンション。任意のディメンションを指定できますが、通常は、1つのレベル(月レベル、年レベルなど)に制限されているTEXT型の階層型時間ディメンション、またはDAY、WEEK、MONTH、QUARTER、YEARのいずれかの型のディメンションです。
expressionのディメンションがDAY、WEEK、MONTH、QUARTERまたはYEARの型であり、そのディメンションをMOVINGAVERAGEに使用する場合は、dimension引数を省略できます。
移動平均の計算時に、MOVINGAVERAGEが現行のステータス・リストを使用することを指定します(つまり、現在ステータスにあるディメンション値のみを現行のステータス順に使用)。
移動平均の計算時に、limit-clauseによって制限されるデフォルトのステータスをMOVINGAVERAGEが使用することを指定します。
limit-clauseの構文は、各種LIMITコマンドにおけるlimit-clause引数の構文(つまり、LIMITコマンドの「TO」などのlimit-type引数の後の構文)と同じです。これらの引数の構文については、LIMITコマンド(値を使用)、LIMITコマンド(LEVELRELを使用)、LIMITコマンド(親リレーションを使用)、LIMITコマンド(関連ディメンションを使用)、LIMITコマンド(NOCONVERTを使用)およびLIMITコマンド(POSLISTを使用)を参照してください。
MOVINGAVERAGEによる計算時に、limit-clauseによって制限される現行のステータスが使用されるようにするには、limit-clauseにLIMITファンクションを指定します。
例
例8-31 移動平均の計算
sales
という名前の変数があるとします。この変数は、time
という名前の階層ディメンション、product
という名前のディメンション、time
のレベルの名前(Quarter
、Year
など)を含むtimelevelnames
という名前のディメンション、およびtime
の値とtimelevelnames
の値を関連付けるtime.levelrels
という名前のリレーションによってディメンション化されています。さらに、次の文を使用してproduct
をWomens - Trousers
に、time
をQ4-1999
から現在までの四半期に制限します。
LIMIT product TO 'Womens - Trousers' LIMIT timelevelnames TO 'Quarter' LIMIT time TO time.levelrels LIMIT time REMOVE 'Q1-1999' 'Q2-1999' 'Q3-1999'
product
およびsales
を制限したら、次のレポート文を発行します。
REPORT DOWN time sales - HEADING 'Running Yearly\nTotal' MOVINGTOTAL(sales, -4, 0, 1, time, - LEVELREL time.levelrels) - HEADING 'Minimum\nQuarter' MOVINGMIN(sales, -4, 0, 1, time, - LEVELREL time.levelrels) - HEADING 'Maximum\nQuarter' MOVINGMAX(sales, -4, 0, 1, time, - LEVELREL time.levelrels) - HEADING 'Average\nQuarter' MOVINGAVERAGE(sales, -4, 0, 1, time, - LEVELREL time.levelrels)
この文によって次のレポートが生成されます。
-----------------------PRODUCT------------------------ ------------------Womens - Trousers------------------- Running Yearly Minimum Maximum Average TIME SALES Total Quarter Quarter Quarter -------------- ---------- ---------- ---------- ---------- ---------- Q4-1999 416 1,386 233 480 346.50 Q1-2000 465 1,851 233 480 370.20 Q2-2000 351 1,969 257 480 393.80 Q3-2000 403 2,115 351 480 423.00 Q4-2000 281 1,916 281 465 383.20 Q1-2001 419 1,919 281 465 383.80 Q2-2001 349 1,803 281 419 360.60 Q3-2001 467 1,919 281 467 383.80 Q4-2001 484 2,000 281 484 400.00 Q1-2002 362 2,081 349 484 416.20 Q2-2002 237 1,899 237 484 379.80 Q3-2002 497 2,047 237 497 409.40 Q4-2002 390 1,970 237 497 394.00