MOVINGSUM
関数は、変化する時間範囲にわたる値の合計を返します。データの時間範囲が移動すると、更新された時間範囲で値を集計します。
週ごとの売上やパフォーマンス結果などの一連のデータに基づいて、ローリング合計やフォーキャストを作成する際にこの関数を使用します。
構文
MOVINGSUM(Line item to aggregate [, Start offset] [, End offset] [, Aggregation method])
引数
引数 | データ型 | 説明 |
Line item to aggregate (必須) | 数値、ブール値、日付、リスト、又はテキスト | 一定期間にわたって集計する値を含むライン アイテム。 この引数はライン アイテムである必要があります。 |
Start offset | 数値 | 集計を開始する値。 Start offset を省略すると、時間範囲全体を対象に集計が実行されます。 |
End offset | 数値 | 集計を終了する値。 |
Aggregation method | キーワード | 使用する集計方法。 使用可能なキーワードは 以下の「集計方法」のセクションにはさらに詳しい情報があります。 |
MOVINGSUM
関数は、Line item to aggregate のデータ型に一致する値を返します。
集計方法
キーワード | データ型 | 目的 |
SUM | 数値 | 入力値を追加 |
AVERAGE | 数値 | 入力値の平均を計算 |
MIN | 数値、日付 | 最小入力値を特定 |
MAX | 数値、日付 | 最大入力値を特定 |
ANY | ブール値 | TRUE である入力値があるかどうかを確認して、ある場合は TRUE を返します。 |
ALL | ブール値 | すべての入力値が TRUE であるかどうかを確認し、その場合は TRUE を返します。 |
FIRSTNONBLANK | 日付、リスト、テキスト | 最初の空白でない入力値を返す |
LASTNONBLANK | 日付、リスト、テキスト | 最後の空白でない入力値を返す |
TEXTLIST | Text | 入力値を「,」区切りで連結して単一のテキスト値を作成 |
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 の値を返します。 |
End offset の値が空白 | Start offsetに対応するポイントから時間範囲の終わりまでの source 値が集計されます。たとえば、ソースが月をディメンションとしている場合は 12 になります。 | End offset はデフォルトでは Start offset の値と同じになります。たとえば、MOVINSUM(source, 4) は MOVINGSUM(source, 4, 4) とみなされます。 |
複数の時間範囲にまたがる参照 | 複数の異なる時間範囲を参照できます。たとえば、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 |
追加情報
たとえば、MOVINGSUM(source, -1, 0)
で、Start offset (-1) 又は End offset (0) が Line item to aggregate の時間範囲外の値になる場合、範囲外の値は集計で無視されます。
制約
Start offset 引数か End offset 引数に少数を使用する場合、MOVINGSUM
では最も近い値に丸められる
例
Jan 23 | Feb 23 | Mar 23 | Apr 23 | May 23 | Jun 23 | Jul 23 | Aug 23 | Sep 23 | |
Number | 200 | 250 | 300 | 500 | 400 | 450 | 200 | 400 | 350 |
Boolean | |||||||||
Date | 02/01/2023 | 06/02/2023 | 16/03/2023 | 20/04/2023 | 19/05/2023 | 23/06/2023 | 21/07/2023 | 30/08/2023 | 14/09/2023 |
MOVINGSUM(Number, -2, 0, AVERAGE) | 200 | 225 | 250 | 350 | 400 | 450 | 350 | 350 | 316.7 |
MOVINGSUM(Number, 1, 3, MAX) | 500 | 500 | 500 | 450 | 450 | 400 | 400 | 350 | 0 |
MOVINGSUM(Number, -4, 2, SUM) | 750 | 1,250 | 1,650 | 2,100 | 2,300 | 2,500 | 2,600 | 2,300 | 1,800 |
MOVINGSUM(Boolean, -1, 0, ANY) | |||||||||
IF MOVINGSUM(Boolean, -1, 0, ALL) THEN 1 ELSE 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
MOVINGSUM(Date, -1, 0, MAX) | 06/02/2023 | 16/03/2023 | 20/04/2023 | 19/05/2023 | 23/06/2023 | 21/07/2023 | 30/08/2023 | 14/09/2023 | 14/09/2023 |