# Last - 圖表函數

Last() 傳回以樞紐分析表的維度值評估而得的運算式值，這些值會顯示在樞紐分析表中目前列區段的最後一個資料行中。此函數在所有圖表類型中都會傳回 NULL，除了樞紐分析表以外。

資訊備註當任何圖表運算式使用了此圖表函數時，就不允許在圖表中依據 Y 值排序，或在表格中依據運算式資料行排序。因此，這些排序替代選項會自動停用。若您在視覺化或表格中使用此圖表函數，視覺化的排序將還原為對此函數的排序輸入。

語法：

Last([TOTAL] expr [, offset [, count]])

引數

| 引數 | 描述 |
| --- | --- |
| expr | 包含待測量之資料的運算式或欄位。 |
| offset | 將一個 offset n 指定為大於 1，則可將運算式的評估從最後一欄往左移動 n 欄。<br><br>若將位移指定為 0，將會評估目前列區段的最後一欄的運算式。<br><br>若指定負值的位移，會讓 Last 函數的作用相當於包含對應正值位移的 First 函數。 |
| count | 將第三個參數 count 指定為大於 1，函數會傳回一系列值，從原始儲存格往左算，每個表格欄的值最多為 count 個。 |
| TOTAL | 如果表格為單一維度或 TOTAL 限定詞作為引數，則目前資料行區段一律等於整個資料行。<br><br>[定義彙總範圍](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

如果樞紐分析表有多個水平維度，則目前列區段僅會包括在所有維度列中與目前資料行有相同值的資料行 (顯示欄位間排序順序之最後一個水平維度的列除外)。樞紐分析表中水平維度的欄位間排序順序，可簡單透過維度從上至下的順序來定義。。

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `Last( Sum(Sales ))` | 傳回目前列區段最後一欄的 `Sales` 總和。 |
| `Last( Sum(Sales ), 2)` | 傳回目前列區段中距離最後一欄左側兩個欄的欄中的 `Sales` 總和。 |
| `Last( Total Sum( Sales ))` | 傳回目前列區段最後一欄的 `Sales` 總和總計。 |
| `RangeAvg (Last(Sum(x),1,5))` | 根據目前列區段的最右方五個資料行，傳回所評估 `sum(x)` 函數之結果的平均值。 |

## 範例 - Last 基礎事項

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/last.htm)

#### 圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Year`

  * `Quarter`

  * `Sales`

載入指令碼

```
Example:
Load * inline [
Year, Quarter, Sales
2023, Q1, 5000
2023, Q2, 4000
2023, Q3, 6000
2023, Q4, 7000
2024, Q1, 4500
2024, Q2, 3250
2024, Q3, 6500
2024, Q4, 7250
];
```

結果

載入資料並開啟工作表。建立新的樞紐分析表並將此欄位新增為列維度：

* `Year`

新增此欄位作為欄維度：

* `Quarter`

建立下列量值：

* `=Sum(Sales)`，用來計算銷售總和。

* `=Last(Sum(Sales))`，用來計算目前列區段最後一欄的銷售總和。

結果表格

| 年 | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Last(Sum(Sales)) | Sum(Sales) | Last(Sum(Sales)) | Sum(Sales) | Last(Sum(Sales)) | Sum(Sales) | Last(Sum(Sales)) |  |
| 2023 | 5000 | 7000 | 4000 | 7000 | 6000 | 7000 | 7000 | 7000 |
| 2024 | 4500 | 7250 | 3250 | 7250 | 6500 | 7250 | 7250 | 7250 |

查看結果，您可以看到 `Last` 函數傳回每季每個列區段最後一欄的銷售值總和。例如，在 `Q1` 中，該期間的 `Sum(Sales)` 值為 `5000`。`Q1` 的 `Last(Sum(Sales)` 值為 `7000`，這是 `Q4` 中 `Sum(Sales)` 的值，即目前列的最後一欄值 `2023`。

## 範例 - Last 使用情境

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/last.htm)

#### 圖表運算式

概述

資料集包含三個月期間各種產品的銷售數據。該公司希望呈現目前期間的總銷售額以及相較於該期間最後 (或最近) 銷售數據的銷售成長率。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Date`

  * `Product`

  * `Sales`

載入指令碼

```
Example:
Load * inline [
Date, Product, Sales
2024-01-01, Apple, 100
2024-01-01, Banana, 150
2024-01-01, Carrot, 120
2024-02-01, Carrot, 80
2024-02-01, Banana, 200
2024-02-01, Apple, 110
2024-03-01, Carrot, 160
2024-03-01, Banana, 300
2024-03-01, Apple, 150
];
```

結果

載入資料並開啟工作表。建立新的樞紐分析表並將此欄位新增為列維度：

* ` Product
                                       `

新增此欄位作為欄維度：

* `Date`

建立下列量值：

* `=Sum(Sales)`，用來計算年度銷售額。

* `=(Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales)`，用來計算目前期間至最新期間的銷售成長率。 若要將此值顯示為百分比，請在數字格式之下，選取數字 &gt; 簡單格式 &gt; 12.34%。

結果表格

| 產品 | 2024-01-01 | 2024-02-01 | 2024-03-01 |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales) | Sum(Sales) | (Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales) | Sum(Sales) | (Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales) |  |
| 蘋果 | 100 | 50.00% | 110 | 36.36% | 150 | 0.00% |
| 香蕉 | 150 | 100.00% | 200 | 50.00% | 300 | 0.00% |
| 紅蘿蔔 | 120 | 33.33% | 80 | 100.00% | 160 | 0.00% |

在此範例中，您可以看到從銷售期間開始到最新期間的銷售進展。例如，在第一個期間 `2024-01-01` 中，`Apple` 銷售額為 `100`，並與期間 `2024-03-01` 的最新 `150` 銷售數據進行了比較。這顯示增加了 `50%`。

## 範例 - 使用 Last 計算預算差異

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/last.htm)

#### 圖表運算式

概述

資料集包含兩年期間依季度劃分的預算數據。該公司希望呈現每季的總預算金額，以及目前期間的預算金額與該年平均每季預算之間的差異。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Year`

  * `Quarter`

  * `Budget`

載入指令碼

```
Example:
Load * inline [
Year, Quarter, Budget
2023, Q1, 1200
2023, Q2, 1100
2023, Q3, 1300
2023, Q4, 1400
2024, Q1, 1550
2024, Q2, 1230
2024, Q3, 1400
2024, Q4, 1600
];
```

結果

載入資料並開啟工作表。建立新的樞紐分析表並將此欄位新增為列維度：

* ` Year
                                       `

新增此欄位作為欄維度：

* `Quarter`

建立下列量值：

* `=Sum(Budget)`，用來計算該季的預算。

* `=Sum(Budget) - RangeAvg(Last(Budget, 1, 4))`，用來計算目前期間的 `Budget` 金額與該年平均每季預算之間的差異。

結果表格

| 年 | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) | Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) | Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) | Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) |  |
| 2023 | 1200 | -50 | 1100 | -150 | 1300 | 50 | 1400 | 150 |
| 2024 | 1550 | 105 | 1230 | -215 | 1400 | -45 | 1600 | 155 |

使用 `Last` 函數，您可以看到每季的預算金額與平均每季預算相比有何變化。例如，在 `2023` 中，該年總預算為 `5000` (`1200 + 1100 + 1300 + 1400`)，因此平均每季預算為 `1250`。由於 `Q1` 的預算金額為 `1200`，因此與 `1250` 的平均每季預算相比，這少了 `50`，而 `Q4` 的預算差異與平均每季預算相比則為 `150`。