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

この関数は、timestamp が base\_date のミリ秒単位まで正確に base\_date を含む四半期の範囲内にある場合、True を返します。

構文:

InQuarterToDate (timestamp, base\_date, period\_no [, first\_month\_of\_year])

戻り値データ型： ブール値

情報メモ

Qlik Sense では、真のブール値は -1 で表現され、偽の値は 0 で表現されます。

inquartertodate 関数の図

inquartertodate 関数の図

inquartertodate 関数の図 ![inquartertodate 関数が TRUE の値を返す日付範囲の例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquartertodate-general.png)

`inquartertodate()` 関数は、1 年を 1 月 1 日～12 月 31 日 (またはユーザーが定義する年の開始日とそれに対応する終了日) の間の 4 つの等しい四半期に分割します。 `base_date` を使用して、関数は特定の四半期を分割し、`base_date` はその四半期セグメントの四半期と最大許容日付の両方を識別します。最後に、指定された日付値をそのセグメントと比較すると、関数はブール値の結果を返します。

引数

| 引数 | 説明 |
| --- | --- |
| timestamp | base\_date と比較する日付。 |
| base\_date | 四半期の評価に使用する日付。 |
| period\_no | 四半期は period\_no によって補正することができます。period\_no は整数で、値 0 は base\_date を含む四半期を示します。period\_no の値が負の場合は過去の四半期を、正の場合は将来の四半期を示します。 |
| first\_month\_of\_year | 事業年度が 1 月以外の月に始まる場合は、first\_month\_of\_year で 2 から 12 の間の値を指定します。 |

## inquartertodate の使用目的

`inquartertodate()` 関数はブール値の結果を返します。通常、このタイプの関数は `if` 式の条件として使用されます。`inquartertodate()` 関数は、評価された日付が問題の日付を含む四半期に発生したかどうかに応じて、集計または計算を返します。

例えば、`inquartertodate()` 関数を使用して、特定の日付を含む四半期に製造されたすべての機器を識別することができます。

関数の例

| 例 | 結果 |
| --- | --- |
| `inquartertodate('01/25/2013', '03/25/2013', 0)` | `timestamp` の値 01/25/2013 が、`base_date` の値 03/25/2013 が入っている 01/01/2013～ 03/25/2013 の 3 か月に当たるため、`TRUE` を返します。 |
| `inquartertodate('04/26/2013', '03/25/2013', 0)` | 04/26/2013 は、前の例の期間の範囲外であるため、`FALSE` を返します。 |
| `inquartertodate('02/25/2013', '06/09/2013', -1)` | `period_no`の値 -1 が検索期間を 1 期間 (3 か月 = 1 年の 1 四半期) 戻るため、`TRUE` を返します。これにより、検索期間は 01/01/2013～03/09/2013 となります。 |
| `inquartertodate('03/25/2006', '04/15/2006', 0, 2)` | `first_month_of_year` の値が 2 に設定され、検索期間が 04/01/2006 ～ 04/15/2006 ではなく 02/01/2006～04/15/2006 になるため、`TRUE` が返されます。 |

## リージョンの設定

特に指定のない限り、このトピックの例では 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/inquartertodate.htm)

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

概要

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

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

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

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

* 2022 年 5 月 15 日までの四半期に発生したトランザクションを決定する項目 [`  in_quarter_to_date `] の作成。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';
						
Transactions:
    Load
        *,
        inquartertodate(date,'05/15/2022', 0) as in_quarter_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'1/19/2022',37.23
8189,'1/7/2022',17.17
8190,'2/28/2022',88.27
8191,'2/5/2022',57.42
8192,'3/16/2022',53.80
8193,'4/1/2022',82.06
8194,'5/7/2022',40.39
8195,'5/16/2022',87.21
8196,'6/15/2022',95.93
8197,'6/26/2022',45.89
8198,'7/9/2022',36.23
8199,'7/22/2022',25.66
8200,'7/23/2022',82.77
8201,'7/27/2022',69.98
8202,'8/2/2022',76.11
8203,'8/8/2022',25.12
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21
8206,'10/14/2022',96.24
8207,'10/29/2022',67.67
];
```

結果

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

* `date`

* `in_quarter_to_date`

結果テーブル

| date | in\_quarter\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

[`in_quarter_to_date`] 項目は、`inquartertodate()` 関数を使用して、先行する LOAD ステートメントで作成されます。提供される最初の引数は、評価される項目を識別します。2 番目の引数は、5 月 15 日のハードコードされた日付です。これは `base_date` で、セグメント化する四半期を識別し、そのセグメントの終了境界を定義します。 `period_no` の 0 は最後の引数です。つまり、関数がセグメント化された四半期の前後の四半期を比較していないということです。

inquartertodate 関数の図、追加の引数なし

inquartertodate 関数の図、追加の引数なし

inquartertodate 関数の図、追加の引数なし ![inquartertodate 関数が TRUE の値を返す日付範囲の例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquartertodate-example-no-additional-arguments.png)

4 月 1 日～ 5 月 15 日に発生したトランザクションは、`TRUE` のブール値の結果を返します。5 月 16 日以降の取引日は `FALSE` を返し、4 月 1 日より前の取引も同様です。

## 例 2 – period\_no

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

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

概要

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

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

* 最初の例と同じデータセットとシナリオ。

* 2022 年 5 月 15 日に終了する四半期セグメント前の四半期全体で発生したトランザクションを決定する項目 [`previous_qtr_to_date`] の作成。

ロード スクリプト

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

Transactions:
    Load
        *,
        inquartertodate(date,'05/15/2022', -1) as previous_qtr_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'1/19/2022',37.23
8189,'1/7/2022',17.17
8190,'2/28/2022',88.27
8191,'2/5/2022',57.42
8192,'3/16/2022',53.80
8193,'4/1/2022',82.06
8194,'5/7/2022',40.39
8195,'5/16/2022',87.21
8196,'6/15/2022',95.93
8197,'6/26/2022',45.89
8198,'7/9/2022',36.23
8199,'7/22/2022',25.66
8200,'7/23/2022',82.77
8201,'7/27/2022',69.98
8202,'8/2/2022',76.11
8203,'8/8/2022',25.12
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21
8206,'10/14/2022',96.24
8207,'10/29/2022',67.67
];
```

結果

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

* `date`

* `previous_qtr_to_date`

結果テーブル

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

`period_no` 値 -1 は、`inquartertodate ()` 関数が入力四半期セグメントを前の四半期と比較することを示します。5 月 15 日はその年の第 2 四半期に分類されるため、セグメントは最初は 4 月 1 日～5 月 15 日に相当します。 `period_no` は、このセグメントを 3 か月前にオフセットし、日付の境界を 1 月 1 日～2 月 15 日にします。

inquartertodate 関数の図、period\_no の例

inquartertodate 関数の図、period\_no の例

inquartertodate 関数の図、period\_no の例 ![inquartertodate 関数が TRUE の値を返す日付範囲の例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquartertodate-example-period-no.png)

したがって、1 月 1 日～2 月 15 日に発生したトランザクションは、`TRUE`のブール値の結果を返します。

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

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

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

概要

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

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

* 最初の例と同じデータセットとシナリオ。

* 2022 年 5 月 15 日まで同四半期に発生したトランザクションを決定する項目 [`in_quarter_to_date`] の作成。

この例では、3 月を会計年度の最初の月として設定します。

ロード スクリプト

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

Transactions:
    Load
        *,
        inquartertodate(date,'05/15/2022', 0,3) as in_quarter_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'1/19/2022',37.23
8189,'1/7/2022',17.17
8190,'2/28/2022',88.27
8191,'2/5/2022',57.42
8192,'3/16/2022',53.80
8193,'4/1/2022',82.06
8194,'5/7/2022',40.39
8195,'5/16/2022',87.21
8196,'6/15/2022',95.93
8197,'6/26/2022',45.89
8198,'7/9/2022',36.23
8199,'7/22/2022',25.66
8200,'7/23/2022',82.77
8201,'7/27/2022',69.98
8202,'8/2/2022',76.11
8203,'8/8/2022',25.12
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21
8206,'10/14/2022',96.24
8207,'10/29/2022',67.67
];
```

結果

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

* `date`

* `in_quarter_to_date`

結果テーブル

| date | in\_quarter\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

`inquartertodate()` 関数の `first_month_of_year` 引数に 3 を使用することにより、関数は 3 月 1 日に年度を開始し、その後その年度を四半期に分割します。したがって、四半期セグメントは次のとおりです。

* 3 月～5 月

* 6 月～8 月

* 9 月～11 月

* 12 月～2 月

次に、5 月 15 日の `base_date` は、5 月 15 日に終了境界を設定することにより、3 月～5 月の四半期をセグメント化します。

inquartertodate 関数の図、first\_month\_of\_year の例

inquartertodate 関数の図、first\_month\_of\_year の例

inquartertodate 関数の図、first\_month\_of\_year の例 ![inquartertodate 関数が TRUE の値を返す日付範囲の例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquartertodate-example-first-mth-yr.png)

したがって、3 月 1 日～5 月 15 日に発生したトランザクションは `TRUE` のブール値の結果を返しますが、これらの境界外の日付のトランザクションは `FALSE` の値を返します。

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

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

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

概要

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

ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。ただし、この例では、変更されていないデータセットがアプリケーションにロードされます。5 月 15 日と同じ四半期に発生したトランザクションを決定する計算は、チャート オブジェクトのメジャーとして作成されます。

ロード スクリプト

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

Transactions:
Load
*
Inline
[
id,date,amount
8188,'1/19/2022',37.23
8189,'1/7/2022',17.17
8190,'2/28/2022',88.27
8191,'2/5/2022',57.42
8192,'3/16/2022',53.80
8193,'4/1/2022',82.06
8194,'5/7/2022',40.39
8195,'5/16/2022',87.21
8196,'6/15/2022',95.93
8197,'6/26/2022',45.89
8198,'7/9/2022',36.23
8199,'7/22/2022',25.66
8200,'7/23/2022',82.77
8201,'7/27/2022',69.98
8202,'8/2/2022',76.11
8203,'8/8/2022',25.12
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21
8206,'10/14/2022',96.24
8207,'10/29/2022',67.67
];
```

結果

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

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

=inquartertodate(date,'05/15/2022', 0)

結果テーブル

| date | =inquartertodate(date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

in\_quarter\_to\_date メジャーは、 inquartertodate() 関数を使用してチャート オブジェクトに作成されます。最初の引数は、評価対象の日付項目です。2 番目の引数は、5 月 15 日のハードコードされた日付です。これは base\_date で、セグメント化する四半期を識別し、そのセグメントの終了境界を定義します。 period\_no の 0 は最後の引数です。つまり、関数がセグメント化された四半期の前後の四半期を比較していないということです。

inquartertodate 関数の図、チャート オブジェクトの例

inquartertodate 関数の図、チャート オブジェクトの例

inquartertodate 関数の図、チャート オブジェクトの例 ![inquartertodate 関数が TRUE の値を返す日付範囲の例の図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquartertodate-example-chart-object.png)

4 月 1 日～5 月 15 日に発生したトランザクションは、TRUE のブール値の結果を返します。5 月 16 日以降のトランザクションは FALSE を返し、4 月 1 日より前のトランザクションも同様です。

## 例 5 – シナリオ

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

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

概要

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

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

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

* 製品 ID、製造年月日、原価に関する情報。

2022 年 5 月 15 日、製造工程で 1 件の設備エラーが特定され、解決されました。この日付までにその四半期に製造された製品は不良品になります。エンド ユーザーは、製造された製品のステータスが「不具合」または「不具合なし」であったこと、およびその四半期までに製造された製品のコストを日付別に表示するチャート オブジェクトを希望しています。

ロード スクリプト

```
Products:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8188,'1/19/2022',37.23
8189,'1/7/2022',17.17
8190,'2/28/2022',88.27
8191,'2/5/2022',57.42
8192,'3/16/2022',53.80
8193,'4/1/2022',82.06
8194,'5/7/2022',40.39
8195,'5/16/2022',87.21
8196,'6/15/2022',95.93
8197,'6/26/2022',45.89
8198,'7/9/2022',36.23
8199,'7/22/2022',25.66
8200,'7/23/2022',82.77
8201,'7/27/2022',69.98
8202,'8/2/2022',76.11
8203,'8/8/2022',25.12
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21
8206,'10/14/2022',96.24
8207,'10/29/2022',67.67
];
```

結果

次の手順を実行します。

1. データをロードしてシートを開きます。新しいテーブルを作成します。四半期名を表示する軸を作成します。

   =quartername(manufacture\_date)

2. 次に、不具合のある製品とない製品を特定する軸を作成します。

   =if(inquartertodate(manufacture\_date,makedate(2022,05,15),0),'Defective','Faultless')

3. 製品の cost\_price を合計するメジャーを作成します。

   =sum(cost\_price)

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

結果テーブル

| quartername(manufacture\_date) | if(inquartertodate(manufacture\_date,makedate(2022,05,15),0),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| 2022 年 1 月～3 月 | 不具合なし | $253.89 |
| 2022 年 4 月～6 月 | 不具合なし | $229.03 |
| 2022 年 4 月～6 月 | 不具合 | $122.45 |
| 2022 年 7 月～9 月 | 不具合なし | $446.31 |
| 2022 年 10 月～12 月 | 不具合なし | $163.91 |

inquartertodate() 関数は、各製品の製造日を評価するときにブール値を返します。TRUE のブール値を返すものについては、製品を ‘Defective’とマークします。FALSE の値を返し、5 月 15 日を含む四半期に製造されていない製品については、製品を ‘Faultless’ とマークします。