# 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 '|');` ` `

透過使用 Load 陳述式中的 Previous() 函數，我們可以比較 Sales 的目前值與前置值，並將它用在第三個欄位 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()，因為函數可以參考從載入中排除的資料。

在此情況下， Increase 對於 Month=7 的計算參考了已從載入中排除的 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/zh-TW/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/InterRecordFunctions/Peek.htm)