# yearname スクリプトおよびチャート関数

この関数は、date を含む年の初日の最初のミリ秒のタイムスタンプに対応する数値を基底として、4 桁の年の表示値を返します。

`yearname()` 関数の時間範囲の図。

`yearname()` 関数の時間範囲の図。

`yearname()`yearname() 関数の時間範囲の図。 ![yearname 関数が結果を返す時間の範囲を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-diagram1.png)

`yearname()` 関数は、評価する日付をオフセットし、年の最初の月を設定できるという点で、 `year()` 関数とは異なります。

年の最初の月が 1 月でない場合、この関数は、その日付を含む 12 か月期間を表す 2 つの 4 桁の年を返します。たとえば、年度の始まりが 4 月で、評価される日付が 06/30/2020 の場合、返される結果は `2020-2021`になります。

4 月が年の最初の月に設定された `yearname()` 関数の図。

4 月が年の最初の月に設定された `yearname()` 関数の図。

4 月が年の最初の月に設定された `yearname()`yearname() 関数の図。 ![yearname 関数が 12 か月間内の日付を識別できること、およびその返された値が年の最初の月として設定されている月によって異なることを示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-diagram2.png)

構文:

YearName(date[, period\_no[, first\_month\_of\_year]] )

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

| 引数 | 説明 |
| --- | --- |
| date | 評価する日付またはタイムスタンプ。 |
| period\_no | period\_no は整数で、値 0 は date を含む年を示します。period\_no の値が負の場合は過去の年を、正の場合は将来の年を示します。 |
| first\_month\_of\_year | 事業年度が 1 月以外の月に始まる場合は、first\_month\_of\_year で 2 から 12 の間の値を指定します。 表示値は、2 年を表す文字列になります。 |

次の値を使用して、`first_month_of_year` 引数に年の最初の月を設定できます。

first\_month\_of\_year values

| 月 | 値 |
| --- | --- |
| 2 月 | 2 |
| 3 月 | 3 |
| 4 月 | 4 |
| May | 5 |
| 6 月 | 6 |
| 7 月 | 7 |
| 8 月 | 8 |
| 9 月 | 9 |
| 10 月 | 10 |
| 11 月 | 11 |
| 12 月 | 12 |

yearname の使用目的

`yearname()` 関数は、集計を年ごとに比較するのに役立ちます。たとえば、製品の総売上高を年ごとに表示する場合などが考えられます。

これらの軸は、関数を使用してマスター カレンダー テーブルに項目を作成することにより、ロード スクリプトで作成できます。また、計算軸としてチャートで作成することもできます

## リージョンの設定

特に指定のない限り、このトピックの例では MM/DD/YYYY の日付書式を使用しています。 日付書式は、データ ロード スクリプトの `SET DateFormat` ステートメントで指定されています。既定の日付書式は、リージョンの設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。詳しくは「[アプリケーションとスクリプトの地域設定の変更](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)」を参照してください。

アプリケーションの既定のリージョン設定は、ユーザー プロファイルに基づいています。これらのリージョンの書式設定は、Qlik Cloud ユーザー インターフェースに表示される言語とは関係ありません。Qlik Cloud は使用しているブラウザと同じ言語で表示されます。

アプリケーションの作成者は、作成するアプリケーションの既定のリージョンを設定できます。詳細については、「[Qlik Cloud Analytics でアプリとスクリプトを作成するための優先地域設定の設定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)」を参照してください。

関数の例

| 例 | 結果 |
| --- | --- |
| `yearname('10/19/2001')` | 「2001」を返します。 |
| `yearname('10/19/2001',-1)` | 「2000」を返します。 |
| `yearname('10/19/2001',0,4)` | 「2001-2002」を返します。 |

関連トピック

| トピック | 説明 |
| --- | --- |
| [year スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | この関数は、expression が標準的な数値の解釈に従って日付と判断される場合に、年を表す整数を返します。 |

## 例 1 – 追加の引数なし

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.htm)

#### ロード スクリプトと結果

概要

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

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

* 2020 年～2022 年の一連のトランザクションを含むデータセットは、「`Transactions`」というテーブルにロードされます。

* 「`MM/DD/YYYY`」に設定された `DateFormat` システム変数。

* `year_name` 項目として設定されている `yearname()` 関数を使用する先行する LOAD。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
      *, 
      yearname(date) as year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `date`
* `year_name`

結果テーブル

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

[`year_name`] 項目は、`yearname()` 関数を使用し、関数の引数として日付項目を渡すことにより、前の load ステートメントで作成されます。

`yearname()` 関数は、日付値がどの年に該当するかを識別し、これを 4 桁の年の値として返します。

2021 を年の値として示す `yearname()` 関数の図。

2021 を年の値として示す `yearname()` 関数の図。

2021 を年の値として示す `yearname()`yearname() 関数の図。 ![yearname() 関数が 2021 年 3 月 17 日の日付に対して 2021 を返すことを示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example1-diagram.png)

## 例 2 – period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.htm)

#### ロード スクリプトと結果

概要

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

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

* 2020 年～2022 年の一連のトランザクションを含むデータセットは、「Transactions」というテーブルにロードされます。

* 「`MM/DD/YYYY`」に設定された DateFormat システム変数。

* `year_name` 項目として設定されている `yearname()` 関数を使用する先行ロード。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
      *, 
      yearname(date,-1) as prior_year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];  
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `date`
* `prior_year_name`

結果テーブル

| date | prior\_year\_name |
| --- | --- |
| 01/13/2020 | 2019 |
| 02/26/2020 | 2019 |
| 03/27/2020 | 2019 |
| 04/16/2020 | 2019 |
| 05/21/2020 | 2019 |
| 08/14/2020 | 2019 |
| 10/07/2020 | 2019 |
| 12/05/2020 | 2019 |
| 01/22/2021 | 2020 |
| 02/03/2021 | 2020 |
| 03/17/2021 | 2020 |
| 04/23/2021 | 2020 |
| 05/04/2021 | 2020 |
| 06/30/2021 | 2020 |
| 07/26/2021 | 2020 |
| 12/27/2021 | 2020 |
| 06/06/2022 | 2021 |
| 07/18/2022 | 2021 |
| 11/14/2022 | 2021 |
| 12/12/2022 | 2021 |

`-1` の `period_no` が `yearname()` 関数でオフセット引数として使用されたため、関数は最初にトランザクションが発生する年を識別します。次に、関数は 1 年前にシフトし、結果の年を返します。

`period_no` が `-1` に設定された `yearname()` 関数の図。

`period_no` が `-1` に設定された `yearname()` 関数の図。

`period_no`period\_no が `-1`-1 に設定された `yearname()`yearname() 関数の図。 ![period_no が -1 の場合、yearname() 関数が識別する時間の範囲が変更される様子を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example2-diagram.png)

## 例 3 – first\_month\_of\_year

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.htm)

#### ロード スクリプトと結果

概要

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

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

* 最初の例と同じデータセット。

* 「`MM/DD/YYYY`」に設定された `DateFormat` システム変数。

* `year_name` 項目として設定されている `yearname()` 関数を使用する先行ロード。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
      *, 
      yearname(date,0,4) as year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `id`
* `date`
* `year_name`

結果テーブル

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2019-2020 |
| 02/26/2020 | 2019-2020 |
| 03/27/2020 | 2019-2020 |
| 04/16/2020 | 2020-2021 |
| 05/21/2020 | 2020-2021 |
| 08/14/2020 | 2020-2021 |
| 10/07/2020 | 2020-2021 |
| 12/05/2020 | 2020-2021 |
| 01/22/2021 | 2020-2021 |
| 02/03/2021 | 2020-2021 |
| 03/17/2021 | 2020-2021 |
| 04/23/2021 | 2021-2022 |
| 05/04/2021 | 2021-2022 |
| 06/30/2021 | 2021-2022 |
| 07/26/2021 | 2021-2022 |
| 12/27/2021 | 2021-2022 |
| 06/06/2022 | 2022-2023 |
| 07/18/2022 | 2022-2023 |
| 11/14/2022 | 2022-2023 |
| 12/12/2022 | 2022-2023 |

`4` の `first_month_of_year` 引数が `yearname()` 関数で使用されているため、年度の始めが 1 月 1 日から 4 月 1 日に移動します。したがって、各 12 か月は 2 つの暦年にまたがり、 `yearname()` 関数は評価される日付の年に対して 2 つの 4 桁の数字を返します。

トランザクション 8198 は 2021 年 3 月 17 日に発生します。`yearname()` 関数は、年度初めを 4 月 1 日に、終わりを 3 月 30 日に設定します。したがって、トランザクション 8198 は、2020 年 4 月 1 日～2021 年 3 月 30 日の期間に発生したことになります。その結果、`yearname()` 関数は値 2020-2021 を返します。

3 月が年の最初の月に設定された `yearname()` 関数の図。

3 月が年の最初の月に設定された `yearname()` 関数の図。

3 月が年の最初の月に設定された `yearname()`yearname() 関数の図。 ![年度の初めの月を 3 月とした場合に、yearname() 関数が特定する時間範囲を示す図/](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example3-diagram.png)

## 例 4 – チャート オブジェクトの例

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.htm)

#### ロード スクリプトとチャートの数式

概要

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

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

* 最初の例と同じデータセット。

* 「`MM/DD/YYYY`」に設定された `DateFormat` システム変数。

ただし、トランザクションが発生した年を返す項目は、チャート オブジェクトのメジャーとして作成されます。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];	
```

結果

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

`date`

「`year_name`」項目を計算するには、次のメジャーを作成します。

`=yearname(date)`

結果テーブル

| date | =yearname(date) |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

「`year_name`」メジャーは、`yearname()` 関数を使用し、関数の引数として日付項目を渡すことにより、チャート オブジェクトで作成されます。

`yearname()` 関数は、日付値がどの年に該当するかを識別し、これを 4 桁の年の値として返します。

2021 が年の値に設定された `yearname()` 関数の図。

2021 が年の値に設定された `yearname()` 関数の図。

2021 が年の値に設定された `yearname()`yearname() 関数の図。 ![2021 を年の値として返す yearname() 関数を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example4-diagram.png)

## 例 5 – シナリオ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.htm)

#### ロード スクリプトとチャートの数式

概要

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

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

* 最初の例と同じデータセット。

* 「MM/DD/YYYY」に設定された DateFormat システム変数。

エンド ユーザーは、トランザクションの四半期ごとの総売上高を示すチャートを求めています。yearname() 軸がデータ モデルで使用できない場合は、 yearname() 関数を計算軸として使用してこのチャートを作成します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成します。

集計を年別に比較するには、次の計算軸を作成します:

=yearname(date)

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

=sum(amount)

メジャーの [数値書式] を [通貨] に設定します。

結果テーブル

| yearname(date) | =sum(amount) |
| --- | --- |
| 2020 | $463.55 |
| 2021 | $457.69 |
| 2022 | $294.35 |