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

この関数は、startdate の n 年の日付、またはn が負の場合には startdate の n 年前の日付を返します。

構文:

AddYears(startdate, n)

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

`addyears()` 関数の図の例

`addyears()` 関数の図の例

`addyears()`addyears() 関数の図の例 ![addyears 関数のさまざまなコンポーネントがどのように組み合わされて、出力日付が生成されるかを示す例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears_overview.png)

`addyears()` 関数は、`startdate` に対して定義された年数 `n` を加算または減算します。次に結果の日付を返します。

引数

| 引数 | 説明 |
| --- | --- |
| startdate | タイムスタンプの開始日。例: '2012-10-12' |
| n | 正または負の整数の年数。 |

関数の例

| 例 | 結果 |
| --- | --- |
| `addyears ('01/29/2010',3)` | 「01/29/2013」を返します |
| `addyears ('01/29/2010',-1)` | 「01/29/2009」を返します |

## リージョンの設定

特に指定のない限り、このトピックの例では 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)」を参照してください。

## 例 1 – 簡単な例

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

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

概要

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

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

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

* `DateFormat` システム変数形式 (MM/DD/YYYY) で提供されている日付項目。

* トランザクション発生の 2 年後の日付を返す項目 [`two_years_later`] の作成。

ロード スクリプト

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

Transactions:
    Load
        *,
        addyears(date,2) as two_years_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/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,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

結果

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

* `date`

* `two_years_later`

結果テーブル

| date | two\_years\_later |
| --- | --- |
| 01/10/2020 | 01/10/2022 |
| 02/28/2020 | 02/28/2022 |
| 04/09/2020 | 04/09/2022 |
| 04/16/2020 | 04/16/2022 |
| 05/21/2020 | 05/21/2022 |
| 08/14/2020 | 08/14/2022 |
| 10/07/2020 | 10/07/2022 |
| 12/05/2020 | 12/05/2022 |
| 01/22/2021 | 01/22/2023 |
| 02/03/2021 | 02/03/2023 |
| 03/17/2021 | 03/17/2023 |
| 04/23/2021 | 04/23/2023 |
| 05/04/2021 | 05/04/2023 |
| 06/30/2021 | 06/30/2023 |
| 07/26/2021 | 07/26/2023 |
| 12/27/2021 | 12/27/2023 |
| 02/02/2022 | 02/02/2024 |
| 02/26/2022 | 02/26/2024 |
| 03/07/2022 | 03/07/2024 |
| 03/11/2022 | 03/11/2024 |

[`two_years_later`] 項目は、`addyears()` 関数を使用して、先行する LOAD ステートメントで作成されます。提供される最初の引数は、評価される日付を識別します。2 番目の引数は、開始日付に対して加算または減算する年数です。この場合、値 2 が入力されます。

`addyears()` 関数の図、基本的な例

`addyears()` 関数の図、基本的な例

`addyears()`addyears() 関数の図、基本的な例 ![ロード スクリプトのトランザクション 8193 が、入力日付から出力日付に変換される様子を示す addyears 関数の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-basic.png)

トランザクション 8193 は 2020 年 8 月 14 日に発生しました。そのため、`addyears()` 関数は [`two_years_later`] 項目に対して 2022 年 8 月 14 日を返します。

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

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

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

概要

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

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

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

* `DateFormat` システム変数形式 (MM/DD/YYYY) で提供されている日付項目。

チャート オブジェクトで、トランザクション発生時から 1 年前の日付を返すメジャー `prior_year_date` を作成します。

ロード スクリプト

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

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/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,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

結果

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

次のメジャーを作成して、各トランザクションから 1 年前の日付を計算します。

`=addyears(date,-1)`

結果テーブル

| date | =addyears(date,-1) |
| --- | --- |
| 01/10/2020 | 01/10/2019 |
| 02/28/2020 | 02/28/2019 |
| 04/09/2020 | 04/09/2019 |
| 04/16/2020 | 04/16/2019 |
| 05/21/2020 | 05/21/2019 |
| 08/14/2020 | 08/14/2019 |
| 10/07/2020 | 10/07/2019 |
| 12/05/2020 | 12/05/2019 |
| 01/22/2021 | 01/22/2020 |
| 02/03/2021 | 02/03/2020 |
| 03/17/2021 | 03/17/2020 |
| 04/23/2021 | 04/23/2020 |
| 05/04/2021 | 05/04/2020 |
| 06/30/2021 | 06/30/2020 |
| 07/26/2021 | 07/26/2020 |
| 12/27/2021 | 12/27/2020 |
| 02/02/2022 | 02/02/2021 |
| 02/26/2022 | 02/26/2021 |
| 03/07/2022 | 03/07/2021 |
| 03/11/2022 | 03/11/2021 |

`one_year_prior` メジャーは、 `addyears()` 関数を使用してチャート オブジェクトに作成されます。提供される最初の引数は、評価される日付を識別します。2 番目の引数は、`  startdate ` に対して加算または減算する年数です。この場合、値 -1 が入力されます。

`addyears()` 関数の図、チャート オブジェクトの例

`addyears()` 関数の図、チャート オブジェクトの例

`addyears()`addyears() 関数の図、チャート オブジェクトの例 ![ロード スクリプトのトランザクション 8193 が、入力日付から出力日付に変換される様子を示す addyears 関数の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-chart-object.png)

トランザクション 8193 は 8 月 14 日に発生しました。そのため、`addyears()` 関数は [`one_year_prior`] 項目に対して 2019 年 8 月 14 日を返します。

## 例 3 – シナリオ

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

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

概要

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

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

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

* 製品 ID、購入日付、保証期間、購入価格の情報。

エンドユーザーは、製品 ID ごとに各製品の保証終了日を表示するチャート オブジェクトを希望しています。

ロード スクリプト

```
Warranties:
Load
*
Inline 
[
product_id,purchase_date,warranty_length,purchase_price
8188,'01/13/2020',4,32000
8189,'02/26/2020',2,28000
8190,'03/27/2020',3,41000
8191,'04/16/2020',4,17000
8192,'05/21/2020',2,25000
8193,'08/14/2020',1,59000
8194,'10/07/2020',2,12000
8195,'12/05/2020',3,12000
8196,'01/22/2021',4,24000
8197,'02/03/2021',1,50000
8198,'03/17/2021',2,80000
8199,'04/23/2021',3,10000
8200,'05/04/2021',4,30000
8201,'06/30/2021',3,30000
8202,'07/26/2021',4,20000
8203,'12/27/2021',4,10000
8204,'06/06/2022',2,25000
8205,'07/18/2022',1,32000
8206,'11/14/2022',1,30000
8207,'12/12/2022',4,22000
];
```

結果

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

* `product_id`

* `purchase_date`

* `warranty_length`

次のメジャーを作成して、各保証期間の終了日付を計算します。

`=addyears(purchase_date,warranty_length)`

結果テーブル

| product\_id | purchase\_date | warranty\_length | =addyears(purchase\_date,warranty\_length) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 4 | 01/13/2024 |
| 8189 | 02/26/2020 | 2 | 02/26/2022 |
| 8190 | 03/27/2020 | 3 | 03/27/2023 |
| 8191 | 04/16/2020 | 4 | 04/16/2024 |
| 8192 | 05/21/2020 | 2 | 05/21/2022 |
| 8193 | 08/14/2020 | 1 | 08/14/2021 |
| 8194 | 10/07/2020 | 2 | 10/07/2022 |
| 8195 | 12/05/2020 | 3 | 12/05/2023 |
| 8196 | 01/22/2021 | 4 | 01/22/2025 |
| 8197 | 02/03/2021 | 1 | 02/03/2022 |
| 8198 | 03/17/2021 | 2 | 03/17/2023 |
| 8199 | 04/23/2021 | 3 | 04/23/2024 |
| 8200 | 05/04/2021 | 4 | 05/04/2025 |
| 8201 | 06/30/2021 | 3 | 06/30/2024 |
| 8202 | 07/26/2021 | 4 | 07/26/2025 |
| 8203 | 12/27/2021 | 4 | 12/27/2025 |
| 8204 | 06/06/2022 | 2 | 06/06/2024 |
| 8205 | 07/18/2022 | 1 | 07/18/2023 |
| 8206 | 11/14/2022 | 1 | 11/14/2023 |
| 8207 | 12/12/2022 | 4 | 12/12/2026 |