LAG は過去の期間の値を返します。
LAG を使って、昨年の月間売上と比較した今月の売上を計算できます。
構文
LAG(Value to offset, Offset amount, Substitute value [, Non-positive behavior])
引数
引数 | データ型 | 説明 |
Value to offset | 数値、ブール値、日付、 時間軸、リスト、又はテキスト | 異なる期間の値と置換する値 |
Offset amount | 数値 | さかのぼって値を取得する期間までの期間数。 正の値は過去の期間、負の値は将来の期間、ゼロは現在の期間を指します。 |
Substitute value | Value to offset と同じ | Offset amount でモデルの時間範囲外の期間を指定する場合に適用する値。 Non-positive behavior 引数に SEMISTRICT キーワードか STRICT キーワードを使用する場合は負のオフセットでも使用されます。 |
Non-positive behavior (オプション) | キーワード | LAG 関数における Substitute value 引数の使用方法を決定します。 |
LAG 関数は Value to offset 引数と同じデータ型で結果を返します。
この関数では三つの引数を使用できます。これらの関数に二つの引数があり、3 番目の引数を宣言しない場合、デフォルトで Time になります。3 番目の引数を宣言すると、ライン アイテムに関連する任意のディメンションを引数として使用できます。
Non-positive behavior キーワード
キーワード | 説明 |
NONSTRICT | Non-positive behavior 引数を省略した場合のデフォルトのキーワードです。 Offset amount が正、負またはゼロの場合に Value to offset を返します。 |
SEMISTRICT | Offset amount が正かゼロの場合に Value to offset を返します。 |
STRICT | Offset amount が正の場合に Value to offset を返します。 |
計算エンジンの機能の違い
Polaris では、Offset amount 引数に使用される数値はすべて最も近い整数に丸められます。Offset amount 引数の値が NaN (非数) の場合に Substitute value 引数が返されます。
Classic エンジン:
- Offset amount 引数に使用される数値はすべて 0 の方向に丸められます。値 NaN は 0 と同等です。
- 時間ディメンションでのみ LAG 関数を使用できます。Polaris では、バージョンを除くすべてのディメンションで LAG を使用できます。
- Expression 引数のデータ型がリストか時間軸で、別のデータ型に解決されない場合、結果ライン アイテムでデータ型を同じにする必要があります。
構文の例
LAG(Value to offset, 2, 0)
Jan | Feb | Mar | April | May | June | |
Value to offset | 3,000 | 1,000 | 2,000 | 7,000 | 2,500 | 3,000 |
LAG 1 | 0 | 0 | 3,000 | 1,000 | 2,000 | 7,000 |
この例では、「LAG 1」ライン アイテムに上記の式があります。つまり、二つ前の期間の値が返されます。
「Jan」と「Feb」ではセルの前の二つの期間がモジュールの時間範囲外であるため、式は Substitute value として 0 を返します。関数には Non-positive behavior 引数が含まれていないため、デフォルトの動作は NONSTRICT になります。
追加情報
LAG で指定した期間がモジュールの時間範囲外である場合、LAG は Substitute value 引数の値を返します。
例
一般的な例
この例では、二つ前の期間から Value to offset を返す式が「Lag by two periods」ライン アイテムにあります。
Jan | Feb | Mar | April | May | June | |
Value to offset | 3,000 | 1,000 | 2,000 | 7,000 | 2,500 | 3,000 |
Substitute value | 10 | 1 | 6 | 1 | 2 | 5 |
Lag by two periods
| 10 | 1 | 3,000 | 1,000 | 2,000 | 7,000 |
Offset amount で時間範囲外の期間を指定している場合、LAG は「Jan」列と「Feb」列に表示されている Substitute value の量を返します。
式には Non-positive behavior 引数が含まれていないため、デフォルトの動作である NONSTRICT が使用されます。
一定オフセットを使用した例
この例では、「LAG with constant offset」ライン アイテムに上記の式があります。つまり、各セルの前の二つの期間のライン アイテムが返されます。
Substitute value の量がモデルの時間範囲外にある場合には、「Jan」列と「Feb」列に表示されている、現在の期間の「Value to offset」行の値が使用されます。式には Non-positive behavior 引数が含まれていないため、デフォルトの動作である NONSTRICT が使用されます。
Jan | Feb | Mar | April | May | June | |
Value to offset | 3,000 | 1,000 | 2,000 | 7,000 | 2,500 | 3,000 |
Substitute value | 10 | 1 | 6 | 1 | 2 | 5 |
LAG with constant offset
| 10 | 1 | 3,000 | 1,000 | 2,000 | 7,000 |
さまざまな Non-positive behavior キーワードの例
この例では、Non-positive behavior 引数のキーワードの違いによって結果がどのように変わるかがわかります。
Jan | Feb | March | April | May | June | |
Value to offset | 1 | 2 | 3 | 4 | 5 | 6 |
Offset amount | 0 | -1 | 0 | 1 | 0 | 1 |
Substitute value | 100 | 200 | 300 | 400 | 500 | 600 |
Semistrict behavior
| 1 | 200 | 3 | 3 | 5 | 5 |
Strict behavior
| 100 | 200 | 300 | 3 | 500 | 5 |
Nonstrict behavior
| 1 | 3 | 3 | 3 | 5 | 5 |