MOVINGSUM 関数では、変化する時間範囲にわたる値の合計を返します。時間範囲がデータ内を移動すると、更新された時間範囲の合計が集計されます。
週ごとの売上やパフォーマンス結果などの一連のデータに基づいて、ローリング合計やフォーキャストを作成する際にこの関数を使用します。
構文
MOVINGSUM(Line item to aggregate [, Start offset] [, End offset] [, Aggregation method])
引数
引数 | データ型 | 説明 |
Line item to aggregate (必須) | 数値、ブール値、日付、リスト、又はテキスト | 一定期間にわたって集計する参照値。 この引数はライン アイテムである必要があります。 |
Start offset | 数値 | 集計を開始する値。 この引数を省略すると、計算では時間軸の全範囲が考慮されます。 |
End offset | 数値 Start offset | 集計を終了する値。 この引数を省略すると、デフォルトで Start offset と同じ値になります。 |
Aggregation method | キーワード | 使用する集計方法 使用可能なキーワードは SUM、AVERAGE、MIN、MAX、ANY、ALL、FIRSTNONBLANK、LASTNONBLANK、TEXTLIST です。 以下の「Aggregation method 引数」セクションにはさらに詳しい情報があります。 |
MOVINGSUM 関数では、Line item to aggregate 引数のデータ型に一致する値を返します。
Aggregation method の引数
キーワード | データ型 | 目的 |
SUM | 数値 | 入力値を追加 |
AVERAGE | 数値 | 入力値の平均を計算 |
MIN | 数値、日付 | 最小入力値を特定 |
MAX | 数値、日付 | 最大入力値を特定 |
ANY | ブール値 | TRUE/FALSE になる入力値があるかどうかを確認 |
ALL | ブール値 | すべての入力値が TRUE/FALSE かどうかを確認 |
FIRSTNONBLANK | 日付、リスト、テキスト | 最初の空白でない入力値を返す |
LASTNONBLANK | 日付、リスト、テキスト | 最後の空白でない入力値を返す |
TEXTLIST | テキスト | 入力値を「,」区切りで連結して単一のテキスト値を作成 |
Aggregation method 引数を省略した場合、デフォルトの動作は Line item to aggregate 引数のデータ型によって異なります。
- Line item to aggregate のデータ型が数値の場合、デフォルトの方法は SUM です。
- Line item to aggregate のデータ型がブール値の場合、デフォルトの方法は ANY です。
- Line item to aggregate のデータ型が日付、リスト、又はテキストの場合、デフォルトの方法は FIRSTNONBLANK です。
計算エンジンの機能の違い
動作 | Polaris | Classic |
二つの引数のバリアント | MOVINGSUM(source, start) で start オフセットに対応するポイントから時間ディメンションの終わりまでの source 値が集計されます。 | MOVINGSUM では、start オフセットに対応するポイントの source の値を返します。これは OFFSET(source, start, 0) と同等です。 |
複数の時間範囲にまたがる参照 | 複数の異なる時間範囲を参照できます。たとえば、MOVINGSUM ではターゲット ライン アイテムの時間ディメンションとは異なる時間範囲に基づいた時間ディメンションがある Line item to aggregate を参照できます。 | 複数の異なる時間範囲を参照できません。 |
複数のタイムスケールにまたがる参照 | ターゲットの時間ディメンションよりも粗いタイムスケールの時間ディメンションがあるソース ライン アイテムは参照できません。 | より粗い時間ディメンションがあるソース ライン アイテムを常に参照できます。 |
引数における NaN の処理 | Start offset 引数と End offset 引数のいずれかが NaN の場合、MOVINGSUM では Line item to aggregate のタイプのデフォルト値を返します。 | どちらかの引数の NaN は、時間ディメンションの最も早い期間に対応するオフセットとして扱われます。 |
空の集計の動作 | 集計する値がない場合、つまり Start offset が End offset より大きい場合、MOVINGSUM では Line item to aggregate のタイプのデフォルト値を返します。 デフォルト値は、数値の場合は 0、ブール値の場合は False、その他のデータ型の場合は空白です。 | 使用される集計方法とそのデータ型の組み合わせに応じて値を返します。 |
日付の MIN 集計方法における空白の処理 | 空白と空白でない日付値を比較する場合、MIN では空白が無視され、空白でない値が返されます。すべての値が空白の場合は空白が返されます。 | 空白を空白でない日付値と比較すると、空白が返されます。 |
使用できない集計方法 | FIRSTNONBLANK、LASTNONBLANK、TEXTLIST は使用できません。 | すべての集計方法を使用できます。 |
構文の例
MOVINGSUM(Bonus, -2, 0)
Jan 22 | Feb 22 | Mar 22 | Apr 22 | May 22 | Jun 22 | Jul 22 | Aug 22 | |
Bonus | 6,150 | 5,850 | 5,900 | 6,025 | 4,850 | 4,950 | 5,600 | 6,250 |
MOVINGSUM (Bonus, -2, 0) | 6,150 | 12,000 | 17,900 | 17,775 | 16,775 | 15,825 | 15,400 | 16,800 |
制約
- 結果ライン アイテムは Line item to aggregate 引数と同じデータ型にする必要がある
- Start offset 引数か End offset 引数に少数を使用する場合、MOVINGSUM では最も近い整数に丸められる
- Line item to aggregate 引数に、別の関数を含む式を使用する場合、結果ライン アイテムと同じ時間範囲をその関数で使用する必要がある
- Start offset か End offset がモジュールの時間範囲を超える場合、範囲外の値は集計で無視される
例
Jan 22 | Feb 22 | Mar 22 | Apr 22 | May 22 | Jun 22 | Jul 22 | Aug 22 | |
X | 200 | 250 | 300 | 500 | 400 | 450 | 200 | 400 |
MOVINGSUM | 200 | 225 | 250 | 350 | 400 | 450 | 350 | 350 |
MOVINGSUM | 200 | 250 | 300 | 500 | 500 | 500 | 450 | 450 |
MOVINGSUM(X, -2, 0, MIN) | 200 | 200 | 200 | 250 | 300 | 400 | 200 | 200 |
MOVINGSUM(X, -3, 0, MIN) | 200 | 200 | 200 | 200 | 250 | 300 | 200 | 200 |