# Previous - スクリプト関数

Previous() は、以前の入力レコードのデータを使用して、expr 式の値を算出します。内部テーブルの最初のレコードの場合は、NULL を返します。

構文:

Previous(expr)

戻り値データ型： デュアル

引数：

Previous 引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。<br><br>数式に previous() 関数をネストすることで、さらに前のレコードにアクセスすることもできます。データは入力ソースから直接取得されるため、QlikView にまだロードされていない項目を参照することができます。つまり、その連想データベースに保存されていなくても項目を参照できます。 |

制限事項:

内部テーブルの最初のレコードの場合は、NULL を返します。

例1：

`Sales2013:` `Load *, (Sales - Previous(Sales) )as Increase Inline [` `Month|Sales` `1|12` `2|13` `3|15` `4|17` `5|21` `6|21` `7|22` `8|23` `9|32` `10|35` `11|40` `12|41` `] (delimiter is '|');` ` `

Previous() 関数を Load ステートメントで使用することで、Sales の現在の値を先行する値と比較でき、3 番目の項目 Increase で使用できます。

例 1 の結果

| Month | Sales | Increase |
| --- | --- | --- |
| 1 | 12 | - |
| 2 | 13 | 1 |
| 3 | 15 | 2 |
| 4 | 17 | 2 |
| 5 | 21 | 4 |
| 6 | 21 | 0 |
| 7 | 22 | 1 |
| 8 | 23 | 1 |
| 9 | 32 | 9 |
| 10 | 35 | 3 |
| 11 | 40 | 5 |
| 12 | 41 | 1 |

例2：

`Sales2013:` `Load * Inline [` `Month|Sales` `1|12` `2|13` `3|15` `4|17` `5|21` `6|21` `7|22` `8|23` `9|32` `10|35` `11|40` `12|41` `] (delimiter is '|');` ` ` `Sales:
` `NoConcatenate Load *, (Sales - Previous(Sales) )as Increase Resident Sales2013 where Month > 6;
` ` ` `
Drop Table Sales2013;` ` `

この例では、WHERE 句を使用することによって、Month が 6 以下であるレコードを除外します。これによって、この関数はロードから除外されたデータを参照できるので、引き続き Previous() を使用できます。

この場合、Month=7 の Increase の計算は Month=6 の Sales の値を参照し、ロードから除外されます。

例 2 の結果

| Month | Sales | Increase |
| --- | --- | --- |
| 7 | 22 | 1 |
| 8 | 23 | 1 |
| 9 | 32 | 9 |
| 10 | 35 | 3 |
| 11 | 40 | 5 |
| 12 | 41 | 1 |

## 詳細を見る

* [Peek - スクリプト関数](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/InterRecordFunctions/Peek.htm)