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

この関数は、timestamp が base\_date を含む四半期に含まれる場合、True を返します。

構文:

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

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

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

`inquarter()` 関数範囲の図

`inquarter()` 関数範囲の図

`inquarter()`inquarter() 関数範囲の図 ![inquarter() 関数が評価する範囲を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-diagram1.png)

言い換えると、`inquarter()` 関数は 1 月 1 日～12 月 31 日の年を 4 つの四半期に等分します。`first_month_of_year` 引数を使ってアプリケーションの開始時としてどの月を設定するかを変更することができ、その引数に基づいて四半期が変化します。`base_date`、関数は関数の比較対象としてどの四半期を使用すべきかを特定します。最後に、日付値をその四半期セグメントと比較すると、関数はブール値の結果を返します。

inquarter の使用目的

`inquarter()` 関数はブール値の結果を返します。通常、このタイプの関数は `if expression` の条件として使用されます。これは、選択した四半期でその日付が発生したかどうかに応じて、集計または計算を返します。

例えば、`inquarter()` 関数は、機器が製造された日付に基づいて、その四半期セグメントに製造されたすべての機器を特定するために使用できます。

引数

| 引数 | 説明 |
| --- | --- |
| 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 の間の値を指定します。 |

次の値を使用して、`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 |

## リージョンの設定

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

関数の例

| 例 | 結果 |
| --- | --- |
| inquarter ('01/25/2013', '01/01/2013', 0) | TRUE を返します |
| inquarter ('01/25/2013', '04/01/2013', 0) | FALSE を返します |
| inquarter ('01/25/2013', '01/01/2013', -1) | FALSE を返します |
| inquarter ('12/25/2012', '01/01/2013', -1) | TRUE を返します |
| inquarter ('01/25/2013', '03/01/2013', 0, 3) | FALSE を返します |
| inquarter ('03/25/2013', '03/01/2013', 0, 3) | TRUE を返します |

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

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

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

概要

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

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

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

* `inquarter()` 関数が [`in_quarter`] 項目として設定された先行する LOAD で、2022 年 5 月 15 日と同じ四半期に発生したトランザクションを決定します。

ロード スクリプト

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

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0) as in_quarter 
       ; 
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`

結果テーブル

| date | in\_quarter |
| --- | --- |
| 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 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 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`] 項目は、`inquarter()` 関数を使用して、前の Load ステートメントで作成されます。最初の引数は、評価される項目を識別します。第 2 引数は 5 月 15 日のハードコード化された日付であり、比較対象として定義ｓるう四半期を特定します。`0` の `period_no` は最後の引数であり、`inquarter()` 関数がセグメント化された四半期の前後の四半期を比較していないことを意味します。

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()`inquarter() 関数の図 ![基準日として 5 月 15 日を使って inquarter() 関数が評価する期間、四半期セグメントに分割された年を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

4 月 1 日～6 月 30 日に発生したトランザクションは、TRUE のブール値の結果を返します。

## 例 2 – period\_no

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

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

概要

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

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

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

* `inquarter()` 関数が [`previous_quarter`] 項目として設定された先行 load で、2022 年 5 月 15 日の前の四半期に発生したトランザクションを決定します。

ロード スクリプト

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

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', -1) as previous_qtr 
       ; 
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`

結果テーブル

| date | previous\_qtr |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | -1 |
| 3/16/2022 | -1 |
| 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 |

`inquarter()` 関数で `-1` を `period_no` 引数として使用することにより、比較対象四半期の境界を 1 四半期ずらします。5 月 15 日はその年の第 2 四半期に分類されるため、セグメントは最初は 4 月 1 日～6 月 30 日に相当します。 `period_no` は、このセグメントを 3 か月前にオフセットし、日付の境界を 1 月 1 日～3 月 30 日にします。

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()`inquarter() 関数の図 ![基準日として 5 月 15 日を使って inquarter() 関数が評価する期間、日付境界を 1 四半期ずらす period_no set -1を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example2-diagram.png)

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

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

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

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

概要

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

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

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

* `inquarter()` 関数が [`in_quarter`] 項目として設定された先行 load で、2022 年 5 月 15 日と同じ四半期に発生したトランザクションを決定します。

ただしこの例では、組織ポリシーでは 3 月が会計期間の開始月に定められています。

ロード スクリプト

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

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0, 3) as in_quarter 
       ; 
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`

結果テーブル

| date | previous\_qtr |
| --- | --- |
| 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 | -1 |
| 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 |

`inquarter()` 関数の `first_month_of_year` 引数に `3` を使用することにより、関数は 3 月 1 日に年度を開始し、その後その年度を四半期に分割します。四半期別セグメントはしたがって、3～5月、6～8月、9～11月、12～2月になります。5 月 15 日の `base_date` は 3～5月四半期を関数の比較対象四半期として設定しています。

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

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

3 月が年の最初の月に設定された `inquarter()`inquarter() 関数の図 ![基準日として 5 月 15 日を使って inmonths() 関数が評価する期間、年の開始月として 3 月が設定されたことを示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example3-diagram.png)

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

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

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

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

概要

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

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

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

* `inquarter()` 関数が [`in_quarter`] 項目として設定された先行 load で、2022 年 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`

5 月 15 日までの同じ四半期にトランザクションが発生したかどうかを計算するには、次のメジャーを作成します。

`=inquarter(date,'05/15/2022', 0)`

結果テーブル

| date | in\_quarter |
| --- | --- |
| 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 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 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` メジャーは、 `inquarter()` 関数を使用してチャートに作成されます。最初の引数は、評価される項目を識別します。第 2 引数は 5 月 15 日のハードコード化された日付であり、比較対象として定義ｓるう四半期を特定します。`0` の `period_no` は最後の引数であり、`inquarter()` 関数がセグメント化された四半期の前後の四半期を比較していないことを意味します。

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()` 関数の図

基準日が 5 月 15 日の `inquarter()`inquarter() 関数の図 ![基準日として 5 月 15 日を使って inquarter() 関数が評価する期間、四半期セグメントに分割された年を示す図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

4 月 1 日～6 月 30 日に発生したトランザクションは、TRUE のブール値の結果を返します。

## 例 5 – シナリオ

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

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

概要

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

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

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

* テーブルには次の項目が含まれています。

  * 製品 ID

  * 製品の種類

  * 製造日付

  * コスト

機器のエラーにより、2022 年 5 月 15 日の四半期に製造された製品に欠陥があることが確認されています。エンド ユーザーは、製造された製品のステータスが「不具合」または「不具合なし」であったこと、およびその四半期に製造された製品のコストを表示するチャートを希望しています。

ロード スクリプト

```
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 
]; 
```

結果

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

=quartername(manufacture\_date)

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

* inquarter() 関数を使って、不具合のある製品とない製品を特定する =if(only(InQuarter(manufacture\_date,makedate(2022,05,15),0)),'Defective','Faultless')。

* 各製品の合計コストを示す =sum(cost\_price)。

次の手順を実行します。

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

2. [スタイル] で [合計] をオフにします。

結果テーブル

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

inquarter() 関数は、各製品の製造日を評価するときにブール値を返します。5 月 15 日を含む四半期に製造された製品の場合、inquarter() 関数はブール値 TRUE を返し、製品を「不具合」としてマークします。FALSE の値を返し、その四半期に製造されなかった製品については、その製品に「不具合なし」のマークが付けられます。