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

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

構文:

InMonth (timestamp, base\_date, period\_no)

`indaytotime` 関数の図。

`indaytotime` 関数の図。

`indaytotime`indaytotime 関数の図。 ![inmonth 関数の条件を示す図。](https://help.qlik.com/ja-JP/sense/November2024/Subsystems/Hub/Content/Resources/Images/dr_Diagram_InMonth.png)

つまり、 `inmonth()` 関数は、一連の日付がこの月に該当するかどうかを判断し、月を識別する `base_date` に基づいてブール値を返します。

使用に適しているケース

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

例えば、`inmonth()` 関数を使用して、特定の月に製造されたすべての機器を識別することができます。

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

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

引数

| 引数 | 説明 |
| --- | --- |
| 日付と時刻 | `base_date` と比較する日付。 |
| base\_date | 月の評価に使用する日付。 `base_date` はある月の任意の日であることに注意してください。 |
| period\_no | 月は `period_no` によって補正することができます。`period_no` は整数で、値 0 は `base_date` を含む月を示します。`period_no` の値が負の場合は過去の月を、正の場合は将来の月を示します。 |

## 地域の設定

特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの `SET DateFormat` ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。

App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。

関数の例

| 例 | 結果 |
| --- | --- |
| ` inmonth ('25/01/2013', '01/01/2013', 0)  ` | True を返す |
| `inmonth('25/01/2013', '23/04/2013', 0)` | False を返す |
| ` inmonth ('25/01/2013', '01/01/2013', -1)  ` | False を返す |
| ` inmonth ('25/12/2012', '17/01/2013', -1)  ` | True を返す |

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

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

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

概要

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

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

* 2022 年上半期の一連の取引を含むデータセット。

* トランザクションが 4 月に発生したかどうかを判断する追加の変数「`in_month`」を使用した先行する LOAD。

ロード スクリプト

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

Transactions: 
  Load 
    *, 
    inmonth(date,'04/01/2022', 0) as in_month 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77 
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

結果

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

* `date`
* `in_month`

関数の例

| 日付 | in\_month |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | 0 |
| 2/2/2022 | 0 |
| 2/20/2022 | 0 |
| 4/11/2022 | -1 |
| 4/13/2022 | -1 |
| 4/15/2022 | -1 |
| 4/25/2022 | -1 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

「`in_month`」項目は、`inmonth()` 関数を使用し、日付項目、ハードコードされた 4 月 1 日、関数の引数として `0` の `base_date` と `period_no` を渡すことにより、先行する LOAD ステートメントで作成されます。

`base_date` は、TRUE のブール結果を返す月を識別します。したがって、4 月に発生したすべてのトランザクションは TRUE を返し、結果テーブルで検証されます。

## 例 2 – period\_no

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

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

概要

最初の例と同じデータセットとシナリオが使用されます。

ただし、この例では、トランザクションが 4 月の 2 か月前に発生したかどうかを判断する項目「`2_months_prior`」を作成します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
Load 
   *, 
   inmonth(date,'04/01/2022', -2) as [2_months_prior] 
Inline  
[ 
id,date,amount 
8188,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

結果

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

* `date`
* `2_months_prior`

関数の例

| 日付 | 2\_months\_prior |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | -1 |
| 2/2/2022 | -1 |
| 2/20/2022 | -1 |
| 4/11/2022 | 0 |
| 4/13/2022 | 0 |
| 4/15/2022 | 0 |
| 4/25/2022 | 0 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

`inmonth()` 関数の `period_no` 引数として -2 を使用すると、[ `base_date` 引数で定義された月が 2 か月前にシフトされます。この例では、定義された月を 4 月から 2 月に変更します。

したがって、2 月に行われるすべてのトランザクションは、ブール値の結果 TRUE を返します。

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

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

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

概要

前の例と同じデータセットとシナリオが使用されます。

ただし、この例ではデータセットは変更されず、アプリケーションにロードされます。トランザクションが 4 月に発生したかどうかを判断する計算は、アプリケーションのチャート オブジェクトのメジャーとして作成されます。

ロード スクリプト

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

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77 
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

チャート オブジェクト

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

`date`

トランザクションが 4 月に行われるかどうかを計算するには、次のメジャーを作成します。

`=inmonth(date,'04/01/2022', 0)`

結果

関数の例

| 日付 | =inmonth(date,'04/01/2022', 0) |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | 0 |
| 2/2/2022 | 0 |
| 2/20/2022 | 0 |
| 4/11/2022 | -1 |
| 4/13/2022 | -1 |
| 4/15/2022 | -1 |
| 4/25/2022 | -1 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

## 例 4 – シナリオ

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

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

概要

この例では、「`Products`」という名前のテーブルにデータセットがロードされます。テーブルには次の項目が含まれています。

* 製品 ID

* 製造日付

* コスト

2022 年 7 月に製造された商品が、設備の不具合により不良品となっていました。この問題は 2022 年 7 月 27 日に解決されました。

エンド ユーザーは、製造された製品のステータスが「不具合」 (ブール値が TRUE) または「不具合なし」 (ブール値が FALSE) であったこと、およびその月に製造された製品のコストを表示するチャートを希望しています。

ロード スクリプト

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

結果

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

`=monthname(manufacture_date)`

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

* `=sum(cost_price)`

* `=if(only(inmonth(manufacture_date,makedate(2022,07,01),0)),'Defective','Faultless')`

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

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

結果テーブル

| monthname(manufacture\_date) | =if(only(inmonth(manufacture\_date,makedate(2022,07,01),0)),'Defective','Faultless') | sum(cost\_price) |
| --- | --- | --- |
| 2022 年 1 月 | 不具合なし | $54.40 |
| 2022 年 2 月 | 不具合なし | $145.69 |
| 2022 年 3 月 | 不具合なし | $53.80 |
| 2022 年 4 月 | 不具合なし | $82.06 |
| 2022 年 5 月 | 不具合なし | $127.60 |
| 2022 年 6 月 | 不具合なし | $141.82 |
| 2022 年 7 月 | 不具合 | $214.64 |
| 2022 年 8 月 | 不具合なし | $147.46 |
| 2022 年 9 月 | 不具合なし | $84.21 |
| 2022 年 10 月 | 不具合なし | $163.91 |

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