# First - チャート関数

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

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

構文:

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

引数

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

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

例: チャートの数式

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

## 例 - First の基本

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/first.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)`、売上の合計を計算します。

* `=First(Sum(Sales))`、現在の行セグメントの最初の列の売上の合計を計算します。

結果テーブル

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

結果を見ると、`First` 関数は各四半期の各行セグメントの最初の列の売上値の合計を返すことがわかります。たとえば、`Q4` では、その期間の `Sum(Sales)` 値は `7000` です。`Q4` の `First(Sum(Sales)` 値は `5000` で、これは `Q1` の `Sum(Sales)` の値であり、現在の行の最初の列の値 `2023` です。

## 例 - First のシナリオ

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

#### チャートの数式

概要

データセットには、3 年間にわたるさまざまな製品の年ごとの売上高が含まれています。企業は、今年度の総売上高と、当該期間の初年度からの売上高の伸びを提示したいと考えています。

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

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

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `Date`

  * `Product`

  * `Sales`

ロード スクリプト

```
Example:
Load * inline [
Date, Product, Sales
2021, Apple, 100
2021, Banana, 150
2021, Carrot, 120
2022, Carrot, 80
2022, Banana, 200
2022, Apple, 110
2023, Carrot, 160
2023, Banana, 300
2023, Apple, 150
];
```

結果

データをロードしてシートを開きます。新しいピボット テーブルを作成し、次の項目を行軸として追加します。

* ` Product
                                       `

この項目を列軸として追加します。

* `Date`

次のメジャーを作成します:

* `=Sum(Sales)`、年間売上高を計算します。

* `=(Sum(Sales) - First(Sales)) / First(Sales)`、データセットの初年度からの売上高の伸びを計算します。 この値をパーセンテージで表示するには、 [数値書式] で、 [数値] &gt; [書式設定 [シンプル]] &gt; [12.34%] を選択します。

結果テーブル

| 製品 | 2021 | 2022 | 2023 |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) |  |
| Apple | 100 | 0.00% | 110 | 10.00% | 150 | 50.00% |
| Banana | 150 | 0.00% | 200 | 33.33% | 300 | 100.00% |
| Carrot | 120 | 0.00% | 80 | -33.33% | 160 | 33.33% |

結果には、各年の年間売上高と、初年度の売上高と比較した年間成長率がパーセンテージで表示されます。たとえば、`Apple` の売上は、`2021` 年の初期値 `100` から `2023` 年には `150` に増加し、`50%` 増加しています。`Carrot` の売上は `2021` 年の `120` から `2022` 年には `80` に減少し、`33.33%` 減少しています。

## 例 - 範囲の合計を使用して予算額を提示する First のシナリオ

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

#### チャートの数式

概要

データセットには、製品カテゴリ別に 2 年間の四半期ごとの予算数値が含まれています。企業は、現在の四半期の予算と各年度の予算の累計額を提示したいと考えています。

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

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

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `BudgetYear`

  * `BudgetQuarter`

  * `QuarterNo`

  * `BudgetAmount`

  * `Category`

ロード スクリプト

```
Example:
Load * inline [
BudgetYear, BudgetQuarter, QuarterNo, BudgetAmount, Category
2023, Q1, 1, 2100, Online
2023, Q2, 2, 2500, Online
2023, Q3, 3, 3100, Online
2023, Q4, 4, 4100, Online
2023, Q1, 1, 5100, Store
2023, Q2, 2, 5500, Store
2023, Q3, 3, 6100, Store
2023, Q4, 4, 7100, Store
2024, Q1, 1, 2300, Online
2024, Q2, 2, 2800, Online
2024, Q3, 3, 3300, Online
2024, Q4, 4, 4400, Online
2024, Q1, 1, 5300, Store
2024, Q2, 2, 5800, Store
2024, Q3, 3, 6300, Store
2024, Q4, 4, 7400, Store
];
```

結果

データをロードしてシートを開きます。新しいピボット テーブルを作成し、次の項目を行の軸として追加します。

* ` BudgetYear
                                       `

* `Category`

この項目を列軸として追加します。

* `BudgetQuarter`

次のメジャーを作成します:

* `=Sum(BudgetAmount)`、予算売上高を計算します。

* `=RangeSum(First(Sum(BudgetAmount), 1, QuarterNo))`、各四半期の評価に基づいて第 1 四半期から `QuarterNo` までの範囲を合計して、各四半期の予算売上の累計を計算します。

結果テーブル

| BudgetYear<br><br>カテゴリ | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) |  |
| (-) 2023 | 7200 | 7200 | 8000 | 15200 | 9200 | 24400 | 11200 | 35600 |
| オンライン | 2100 | 2100 | 2500 | 4600 | 3100 | 7700 | 4100 | 11800 |
| 保存 | 5100 | 5100 | 5500 | 10600 | 6100 | 16700 | 7100 | 23800 |
| (-) 2024 | 7600 | 7600 | 8600 | 16200 | 9600 | 25800 | 11800 | 37600 |
| オンライン | 2300 | 2300 | 2800 | 5100 | 3300 | 8400 | 4400 | 12800 |
| 保存 | 5300 | 5300 | 5800 | 11100 | 6300 | 17400 | 7400 | 24800 |

結果には、各 `Year` と `Category` の予算額と、`Quarter` ごとの累計が表示されます。たとえば、`2023` 年の `Q2` では、`QuarterNo` は `2` です。したがって、関数式は `RangeSum(First(Sum(BudgetAmount), 1, 2))` として評価され、`Q1` (`7200`) と `Q2` (`8000`) の `BudgetAmount` 列を合計して、値 `15200` を返します。結果は、`Q1` と `Q2` の `Sum(BudgetAmount)` 列の合計を返します。`2024` 年の `Category Online` では、`Q1` の `Sum(BudgetAmount)` は `2300`、`Q2`は `2800` です。したがって、`RangeSum` 式は `5100` を返します。