# Last - チャート関数

Last() は、ピボット テーブルの現在の行セグメントの最後の列に、ピボット テーブルの軸値で評価された expression の値を返します。ピボット テーブル以外のすべてのチャート タイプの場合、この関数は NULL を返します。

情報メモチャートの式いずれかにこのチャート関数が使用されている場合、チャートの y 値のソート、またはテーブルの式列ごとのソートは許可されません。よって、これらのソート機能は自動的に無効になります。ビジュアライゼーションまたはテーブルでこのチャート関数を使用すると、ビジュアライゼーションのソートは、レコード間の関数に対するソートされた入力の状態に戻ります。

構文:

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

引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。 |
| offset | offset n を 1 より大きい値にすると、数式の評価が最後の列から左の n 列に移動します。<br><br>offset に 0 を指定すると、現在の行セグメントの最後の列で数式が評価されます。<br><br>offset が負の値である場合、Last 関数は、相応する正の offset 値が付いた First 関数と同様に機能します。 |
| count | 3 番目のパラメーター count を 1 より大きい値に指定すると、関数は元のセルから左に数えて、テーブルの各列に対して count の値までの範囲の値を返します。 |
| TOTAL | テーブルが 1 軸の場合、または TOTAL 修飾子が引数として使用される場合は、現在の列セグメントは常に列全体と等しくなります。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

ピボット テーブルに複数の水平軸が存在する場合、現在の行セグメントには、項目ソート順の最後の水平軸を示す行を除くすべての軸行の現在列と同じ値を持つ列だけが含まれます。ピボット テーブルの水平軸の項目間ソート順は、上から下への軸の順序で定義されます。。

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `Last( Sum(Sales ))` | 現在の行セグメントの最後の列の `Sales` の合計を返します。 |
| `Last( Sum(Sales ), 2)` | 現在の行セグメントの最後の列の 2 列左にある列の `Sales` の合計を返します。 |
| `Last( Total Sum( Sales ))` | 現在の行セグメントの最後の列の `Sales` の総合計を返します。 |
| `RangeAvg (Last(Sum(x),1,5))` | 現在の行セグメントの右端 5 つの列で評価された `sum(x)` 関数の結果の平均を返します。 |

## 例 - Last の基本

[](https://help.qlik.com/en-US/sense/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/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/last.htm)

#### チャートの数式

概要

データセットには、3 か月間のさまざまな製品の売上高が含まれています。企業は、現在の期間の総売上高と、その期間の前回 (または直近の) 売上高と比較した売上高の伸びを提示したいと考えています。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`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) |  |
| Apple | 100 | 50.00% | 110 | 36.36% | 150 | 0.00% |
| Banana | 150 | 100.00% | 200 | 50.00% | 300 | 0.00% |
| Carrot | 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/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/last.htm)

#### チャートの数式

概要

データセットには、2 年間にわたる四半期ごとの予算数値が含まれています。企業は、四半期ごとの総予算額と、現在の期間の予算額と年間の平均四半期予算との差異を提示したいと考えています。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`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` 多くなります。