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

networkdays 関数は、オプションで指定された holiday を考慮した上で、start\_date と end\_date の間の当日を含む作業日数 (月～金曜日) を返します。

構文:

networkdays (start\_date, end\_date [, holiday])

戻り値データ型： 整数

networkdays 関数が返した日付範囲を表示するカレンダーの図

networkdays 関数が返した日付範囲を表示するカレンダーの図

networkdays 関数が返した日付範囲を表示するカレンダーの図 ![ここに代替テキストを追加します.....!!!!!!](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-general-calendar.png)

`networkdays` 関数には次の制限事項があります:

* 勤務日を変更する方法はありません。つまり、月～金曜日以外の日付が関与する地域または状況のために関数を変更する方法はないということです。

* `holiday` パラメータは文字列定数である必要があります。数式は使用できません。

引数

| 引数 | 説明 |
| --- | --- |
| start\_date | 評価する開始日。 |
| end\_date | 評価する終了日。 |
| holiday | 作業日から除外する休日期間。休日は文字列定数の日付として示されます。コンマで区切り、複数の休日を設定できます。<br><br>`  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## networkdays の使用目的

`networkdays()` 関数は、計算で 2 つの日付の間に週の労働日数を使用する場合に、数式の一部としてよく使われます例えば、PAYE (源泉課税) 契約の従業員が得る合計賃金を計算するような場合です。

関数の例

| 例 | 結果 |
| --- | --- |
| `networkdays ('12/19/2013', '01/07/2014')` | 14 を返します。この例では、休日を考慮に入れていません。 |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013')` | 12 を返します。12/25/2013 から 12/26/2013 までの休日を考慮に入れています。 |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014')` | 10 を返します。この例では、2 日間の休日期間を考慮に入れています。 |

## リージョンの設定

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

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

概要

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

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

* プロジェクト ID、開始日付、終了日付を含むデータセット。この情報は、「`Projects`」というテーブルにロードされます。

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

* 各プロジェクトに関与する勤務日数を計算する追加項目 [`net_work_days`] の作成。

ロード スクリプト

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

Projects:
    Load
        *,
        networkdays(start_date,end_date) as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

結果

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

結果テーブル

| ID | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 13 |

休日が予定されていないため (これは `networkdays()` 関数の第 3 引数に入っているはずである)、関数は `start_date` を `end_date`、そしてすべての週末から差し引いて、2 つの日付の間の勤務日数を計算します。

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日なし)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日なし)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日なし) ![ID が 5 のデータセットに含まれるプロジェクトの勤務日を示す 8 月のカレンダー図。ここでは、2022 年 8 月 10 日から 26 日までのすべての平日 (月～金) が強調表示されており、土曜と日曜は除外されています。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-basic.png)

上記のカレンダーは、`id` が 5 のプロジェクトを視覚的に概説しています。プロジェクト 5 は 2022 年 8 月 10 日 (水) に開始され、2022 年 8 月 26 日に終了します。土日はすべて無視されるため、これら 2 つの日付を含むその間には 13 日あります。

## 例 2 – 単一の休日

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

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

概要

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

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

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

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

* 各プロジェクトに関与する勤務日数を計算する追加項目 [`net_work_days`] の作成。

この例では、2022 年 8 月 19 日に休日が 1 日予定されています。

ロード スクリプト

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

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/19/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

結果

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

結果テーブル

| ID | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

単一のスケジュールされた休日は、`networkdays()` 関数に第 3 引数として入力されます。

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日 1 日)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日 1 日)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (休日 1 日) ![ID が 5 のデータセットに含まれるプロジェクトの勤務日を示す 8 月のカレンダー図。ここでは、2022 年 8 月 10 日から 26 日までのすべての平日 (月～金) が強調表示されており、2022 年 8 月 19 日 (休日) のみは例外で、除外されています。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-single-holiday.png)

上記のカレンダーはプロジェクト 5 を視覚的に概説しており、休日を含むこの調整を示しています。この休日は、プロジェクト 5 の期間、2022 年 8 月 19 日 (金) に発生します。その結果、プロジェクト 5 で合計 `net_work_days` の値が 13 日から 12 日に 1 日減ります。

## 例 3 – 複数の休日

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

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

概要

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

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

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

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

* 各プロジェクトに関与する勤務日数を計算する追加項目 [`net_work_days`] の作成。

ただし、この例では、2022 年 8 月 18 日～8 月 21 日に 4 日間の休日が予定されています。

ロード スクリプト

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

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

結果

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

結果テーブル

| ID | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 11 |

予定されている 4 日間は、`networkdays()` 関数の第 3 引数からカンマ区切りのリストとして入力されます。

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (複数の休日)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (複数の休日)

プロジェクト 5 の勤務日が強調表示されたカレンダーの図 (複数の休日) ![ID が 5 のデータセットに含まれるプロジェクトの勤務日を示す 8 月のカレンダー図。ここでは、2022 年 8 月 10 日から 26 日までのすべての平日 (月～金) が強調表示されており、2022 年 8 月 18 日と 19 日 (休日) のみは例外で、除外されています。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-multiple-holidays.png)

上記のカレンダーはプロジェクト 5 を視覚的に概説しており、これらの休日を含むこの調整を示しています。予定された休日のこの期間は、プロジェクト 5 の期間中、木曜日と金曜日の 2 日間に発生します。その結果、プロジェクト 5 で合計 `net_work_days` の値が 13 日から 11 日に減ります。

## 例 4 – 単一の休日

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

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

概要

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

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

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

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

2022 年 8 月 19 日に休日が 1 日予定されています。

ただし、この例では、変更されていないデータセットがアプリケーションにロードされます。net\_work\_days 項目は、チャート オブジェクトのメジャーとして計算されます。

ロード スクリプト

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

Projects:
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

結果

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

* id

* start\_date

* end\_date

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

= networkdays(start\_date,end\_date,’08/19/2022’)

結果テーブル

| ID | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

単一のスケジュールされた休日は、networkdays() 関数に第 3 引数として入力されます。

単一の休日で正味勤務日が表示されているカレンダーの図 (チャート オブジェクト)

単一の休日で正味勤務日が表示されているカレンダーの図 (チャート オブジェクト)

単一の休日で正味勤務日が表示されているカレンダーの図 (チャート オブジェクト) ![ID が 5 のデータセットに含まれるプロジェクトの勤務日を示す 8 月のカレンダー図。ここでは、2022 年 8 月 10 日から 26 日までのすべての平日 (月～金) が強調表示されており、2022 年 8 月 19 日 (休日) のみは例外で、除外されています。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-chart-single-holiday.png)

上記のカレンダーはプロジェクト 5 を視覚的に概説しており、休日を含むこの調整を示しています。この休日は、プロジェクト 5 の期間、2022 年 8 月 19 日 (金) に発生します。その結果、プロジェクト 5 で合計 net\_work\_days の値が 13 日から 12 日に 1 日減ります。