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

この関数は、入力された日付に対応する週番号を表す整数を返します。

構文:

week(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

戻り値データ型： 整数

引数

| 引数 | 説明 |
| --- | --- |
| timestamp | 評価する日付またはタイムスタンプ。 |
| first\_week\_day | 週の開始日を指定します。省略されている場合は、変数 FirstWeekDay の値が使用されます。<br><br>first\_week\_day には、0 が月曜日、1 が火曜日、2 が水曜日、3 が木曜日、4 が金曜日、5 が土曜日、6 が日曜日の値を使用できます。<br><br>システム変数の詳細については、[FirstWeekDay](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) を参照してください。 |
| broken\_weeks | broken\_weeks が指定されていない場合は、変数 BrokenWeeks の値を使用して、週が分離しているかどうかを定義します。<br><br>システム変数の詳細については、[BrokenWeeks](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) を参照してください |
| reference\_day | reference\_day が指定されていない場合は、変数 ReferenceDay の値を使用して、第 1 週を定義する参照日として設定する 1 月の日を定義します。デフォルトでは、Qlik Sense 関数は 4 を参照日として使用します。これは、第 1 週に必ず 1 月 4 日が含まれる、または第 1 週に少なくとも 1 月の 4 日間が常に含まれることを意味します。<br><br>システム変数の詳細については、[ReferenceDay](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) を参照してください |

`week()` 関数は、日付が属する週を判別し、その週の週番号を返します。

Qlik Sense では、アプリケーション作成時に地域設定がフェッチされ、対応する設定は環境変数としてスクリプトに保管されます。これらは、週番号を決定するために使用されます。

これはつまり、大部分のヨーロッパのアプリケーション開発者は、ISO 8601 定義に対応する次の環境変数を取得するということです。

```
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    // Use unbroken weeks
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

北米のアプリケーション開発者は、頻繁に次の環境変数を取得します。

```
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    // Use broken weeks
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

週の最初の曜日は、 `FirstWeekDay` システム変数によって決定されます。 `week()` 関数で `first_week_day` 引数を使用して、週の最初の曜日を変更することもできます。

アプリケーションが分割された週を使用する場合、発生日数に関係なく週数のカウントは 1 月 1 日に始まり、`FirstWeekDay` システム変数の前日に終了します。

アプリケーションが連続した週を使用している場合、第 1 週は前年または 1 月の最初の数日間に開始できます。これは、 `FirstWeekDay` および `ReferenceDay` 環境変数の使用方法によって異なります。

## week の使用目的

`The week()` 関数は、集計を週単位で比較する場合に便利です。例えば、製品の総売上高を週ごとに表示する場合などに使用できます。`week()` 関数は、ユーザーがアプリケーションの `BrokenWeeks`、`FirstWeekDay`、または `ReferenceDay` システム変数を必ずしも使用せずに計算を行いたい場合に、`weekname()` よりも優先して選択されます。

たとえば、製品の総売上高を週ごとに表示する場合などが考えられます。

アプリケーションが連続週を使用している場合、第 1 週には前年の 12 月の日付が含まれるか、今年の 1 月の日付が除外されます。アプリケーションが分割された週を使用している場合、第 1 週 に含まれる日数が 7 日間を下回ることがあります。

## リージョンの設定

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

下記の例では

```
Set DateFormat= 'MM/DD/YYYY';  
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

関数の例

| 例 | 結果 |
| --- | --- |
| week('12/28/2021') | 52 を返すとみなされます。 |
| week(44614) | これは、02/22/2022 のシリアル番号であるため、8 を返します。number for . |
| week('01/03/2021') | 53 を返すと推測されます。 |
| week('01/03/2021',6) | 1 を返します。 |

## 例 1 - 既定システムの変数

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

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

概要

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

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

* 2021 年の最後の週と 2022 年の最初の週のトランザクションを含むデータセットは、Transactions というテーブルにロードされます。

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

* トランザクションが発生する年と週番号を返す、項目 [week\_number] の作成。

* 各トランザクション日付の平日値を示している、week\_day という項目の作成

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果テーブル

| id | date | week\_day | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 月 | 53 |
| 8184 | 12/28/2021 | 火 | 53 |
| 8185 | 12/29/2021 | 水 | 53 |
| 8186 | 12/30/2021 | 木 | 53 |
| 8187 | 12/31/2021 | 金 | 53 |
| 8188 | 01/01/2022 | 土 | 1 |
| 8189 | 01/02/2022 | 日 | 2 |
| 8190 | 01/03/2022 | 月 | 2 |
| 8191 | 01/04/2022 | 火 | 2 |
| 8192 | 01/05/2022 | 水 | 2 |
| 8193 | 01/06/2022 | 木 | 2 |
| 8194 | 01/07/2022 | 金 | 2 |
| 8195 | 01/08/2022 | 土 | 2 |
| 8196 | 01/09/2022 | 日 | 3 |
| 8197 | 01/10/2022 | 月 | 3 |
| 8198 | 01/11/2022 | 火 | 3 |
| 8199 | 01/12/2022 | 水 | 3 |
| 8200 | 01/13/2022 | 木 | 3 |
| 8201 | 01/14/2022 | 金 | 3 |

week\_number 項目は、week() 関数を使用し、関数の引数として date 項目を渡すことにより、先行する LOAD ステートメントで作成されます。

関数に渡される他のパラメータはないため、week() 関数に影響する次の既定変数が有効となります。

* BrokenWeeks: 週のカウントは 1 月 1 日に始まります

* FirstWeekDay: 週の初日は日曜日です

既定のシステム変数を使用した week() 関数の図

既定のシステム変数を使用した week() 関数の図

既定のシステム変数を使用した week()week() 関数の図 ![week 関数が年の日付を対応する週番号に分離する様子を示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

アプリケーションは既定の BrokenWeeks システム変数を使用しているため、第 1 週は 1 月 1 日の土曜日に始まります。

既定の FirstWeekDay システム変数のため、週は日曜日に始まります。1 月 1 日以降の最初の日曜日は 1 月 2 日に発生し、この日から第 2 週が始まります。

## 例 2 – first\_week\_day

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

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

概要

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

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

* トランザクションが発生する年と週番号を返す、項目 [week\_number] の作成。

* 各トランザクション日付の平日値を示している、week\_day という項目の作成

子の例では、勤務週の初めを火曜日に設定します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果テーブル

| id | date | week\_day | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 月 | 52 |
| 8184 | 12/28/2021 | 火 | 53 |
| 8185 | 12/29/2021 | 水 | 53 |
| 8186 | 12/30/2021 | 木 | 53 |
| 8187 | 12/31/2021 | 金 | 53 |
| 8188 | 01/01/2022 | 土 | 1 |
| 8189 | 01/02/2022 | 日 | 1 |
| 8190 | 01/03/2022 | 月 | 1 |
| 8191 | 01/04/2022 | 火 | 2 |
| 8192 | 01/05/2022 | 水 | 2 |
| 8193 | 01/06/2022 | 木 | 2 |
| 8194 | 01/07/2022 | 金 | 2 |
| 8195 | 01/08/2022 | 土 | 2 |
| 8196 | 01/09/2022 | 日 | 2 |
| 8197 | 01/10/2022 | 月 | 2 |
| 8198 | 01/11/2022 | 火 | 3 |
| 8199 | 01/12/2022 | 水 | 3 |
| 8200 | 01/13/2022 | 木 | 3 |
| 8201 | 01/14/2022 | 金 | 3 |

アプリケーションはまだ分離された週を使用しています。ただし、first\_week\_day 引数は week() 関数で 1 に設定されています。これにより、週の最初の日が火曜日に設定されます。

week() 関数、first\_week\_day 例の図

week() 関数、first\_week\_day 例の図

week()week() 関数、first\_week\_day 例の図 ![week 関数が年の日付を対応する週番号に分離する様子を示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-first-week-day.png)

アプリケーションは既定の BrokenWeeks システム変数を使用しているため、第 1 週は 1 月 1 日の土曜日に始まります。

week() の first\_week\_day 引数により、週の最初の日が火曜日に設定されます。そのため、第 53 週は 2021 年 12 月 28 日に始まります。

しかし、関数ではそのまま分離週を使用しているため、1 月 1 日以降の最初の火曜日が 1 月 3 日になり、第 1 週は 2 日しかありません。

## 例 3 – unbroken\_weeks

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

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

概要

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

ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。

この例では、未分離の週を使用します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,6,0) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

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

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

week()week() 関数の図、チャート オブジェクトの例 ![ここに代替テキストを追加します.....!!!!!!](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-chart-object.png)

結果テーブル

| id | date | week\_day | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 月 | 52 |
| 8184 | 12/28/2021 | 火 | 52 |
| 8185 | 12/29/2021 | 水 | 52 |
| 8186 | 12/30/2021 | 木 | 52 |
| 8187 | 12/31/2021 | 金 | 52 |
| 8188 | 01/01/2022 | 土 | 52 |
| 8189 | 01/02/2022 | 日 | 1 |
| 8190 | 01/03/2022 | 月 | 1 |
| 8191 | 01/04/2022 | 火 | 1 |
| 8192 | 01/05/2022 | 水 | 1 |
| 8193 | 01/06/2022 | 木 | 1 |
| 8194 | 01/07/2022 | 金 | 1 |
| 8195 | 01/08/2022 | 土 | 1 |
| 8196 | 01/09/2022 | 日 | 2 |
| 8197 | 01/10/2022 | 月 | 2 |
| 8198 | 01/11/2022 | 火 | 2 |
| 8199 | 01/12/2022 | 水 | 2 |
| 8200 | 01/13/2022 | 木 | 2 |
| 8201 | 01/14/2022 | 金 | 2 |

first\_week\_date パラメータが 1 に設定されており、週の初日が火曜日となります。broken\_weeks パラメータが 0 に設定されており、関数が分離されていない週を使うよう強制します。最後に、3 番目のパラメータが reference\_day を 2 に設定します。

first\_week\_date パラメータが 6 に設定されており、週の初日が日曜日となります。broken\_weeks パラメータが 0 に設定されており、関数が分離されていない週を使うよう強制します。

week() 関数の図、例では未分離の週を使用

week() 関数の図、例では未分離の週を使用

week() 関数の図、例では未分離の週を使用 ![week 関数が年の日付を対応する週番号に分離する様子を示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-unbroken-weeks.png)

未分離の週を使用することにより、第 1 週が 1 月 1 日に始まるとは限らず、最低 4 日間が必須となります。そのため、データセットでは、第 52 週は 2022 年 1 月 1 日の土曜日に終わります。そうすると第 1 週は FirstWeekDay システム変数、つまり 1 月 2 日の日曜日に始まります。この週は次の土曜日である 1 月 8 日に終わります。

## 例 4 – reference\_day

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

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

概要

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

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

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

* トランザクションが発生する年と週番号を返す、項目 [week\_number] の作成。

* 各トランザクション日付の平日値を示している、week\_day という項目の作成

さらに、次の条件も満たす必要があります。

* 勤務週は火曜日に始まります。

* 会社は未分離の週を使用します。

* reference\_day 値は 2 です。つまり、第 1 週の最小日数は 2 となります。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1,0,2) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果テーブル

| id | date | week\_day | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 月 | 52 |
| 8184 | 12/28/2021 | 火 | 1 |
| 8185 | 12/29/2021 | 水 | 1 |
| 8186 | 12/30/2021 | 木 | 1 |
| 8187 | 12/31/2021 | 金 | 1 |
| 8188 | 01/01/2022 | 土 | 1 |
| 8189 | 01/02/2022 | 日 | 1 |
| 8190 | 01/03/2022 | 月 | 1 |
| 8191 | 01/04/2022 | 火 | 2 |
| 8192 | 01/05/2022 | 水 | 2 |
| 8193 | 01/06/2022 | 木 | 2 |
| 8194 | 01/07/2022 | 金 | 2 |
| 8195 | 01/08/2022 | 土 | 2 |
| 8196 | 01/09/2022 | 日 | 2 |
| 8197 | 01/10/2022 | 月 | 2 |
| 8198 | 01/11/2022 | 火 | 3 |
| 8199 | 01/12/2022 | 水 | 3 |
| 8200 | 01/13/2022 | 木 | 3 |
| 8201 | 01/14/2022 | 金 | 3 |

first\_week\_date パラメータが 1 に設定されており、週の初日が火曜日となります。broken\_weeks パラメータが 0 に設定されており、関数が分離されていない週を使うよう強制します。最後に、3 番目のパラメータが reference\_day を 2 に設定します。

week() 関数、reference\_day 例の図

week() 関数、reference\_day 例の図

week()week() 関数、reference\_day 例の図 ![week 関数が年の日付を対応する週番号に分離する様子を示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-reference-day.png)

関数が未分離の週を使用し、パラメータとして reference\_day 値 2 を使用しているため、第 1 週に含める必要があるのは 1 月の 2 日間のみです。最初の平日が火曜日であるため、第 1 週は 2021 年 12 月 28 日に始まり、2022 年 1 月 3 日に終わります。

## 例 5 – Chart object example

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

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

概要

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

ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。

ただし、この例では、変更されていないデータセットがアプリケーションにロードされます。週番号を返す計算は、チャート オブジェクトでメジャーとして作成されます。

ロード スクリプト

```
Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

次の手順を実行します。

1. データをロードしてシートを開きます。新しいテーブルを作成します。

2. 次の項目を軸として追加します。

   * id

   * date

3. 次に、下記のメジャーを作成します。

   =week (date)

4. 各トランザクション日付の平日値を表示するメジャー, week\_day を作成します。

   =weekday(date)

結果テーブル

| id | date | =week(date) | =weekday(date) |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 53 | 月 |
| 8184 | 12/28/2021 | 53 | 火 |
| 8185 | 12/29/2021 | 53 | 水 |
| 8186 | 12/30/2021 | 53 | 木 |
| 8187 | 12/31/2021 | 53 | 金 |
| 8188 | 01/01/2022 | 1 | 土 |
| 8189 | 01/02/2022 | 2 | 日 |
| 8190 | 01/03/2022 | 2 | 月 |
| 8191 | 01/04/2022 | 2 | 火 |
| 8192 | 01/05/2022 | 2 | 水 |
| 8193 | 01/06/2022 | 2 | 木 |
| 8194 | 01/07/2022 | 2 | 金 |
| 8195 | 01/08/2022 | 2 | 土 |
| 8196 | 01/09/2022 | 3 | 日 |
| 8197 | 01/10/2022 | 3 | 月 |
| 8198 | 01/11/2022 | 3 | 火 |
| 8199 | 01/12/2022 | 3 | 水 |
| 8200 | 01/13/2022 | 3 | 木 |
| 8201 | 01/14/2022 | 3 | 金 |

[week\_number] 項目は、week() 関数を使用し、関数の引数として [date] 項目を渡すことにより、前の load ステートメントで作成されます。

関数に渡される他のパラメータはないため、week() 関数に影響する次の既定変数が有効となります。

* BrokenWeeks: 週のカウントは 1 月 1 日に始まります

* FirstWeekDay: 週の初日は日曜日です

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

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

week()week() 関数の図、チャート オブジェクトの例 ![week 関数が年の日付を対応する週番号に分離する様子を示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

アプリケーションは既定の BrokenWeeks システム変数を使用しているため、第 1 週は 1 月 1 日の土曜日に始まります。

既定の FirstWeekDay システム変数のため、週は日曜日に始まります。1 月 1 日以降の最初の日曜日は 1 月 2 日に発生し、この日から第 2 週が始まります。

## 例 6 – シナリオ

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

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

概要

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

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

* 2019 年の最後の週と 2020 年の最初の週のトランザクションを含むデータセットは、Transactions というテーブルにロードされます。

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

アプリケーションは、ダッシュボード全体で未分離の週を主に使用します。ただし、エンド ユーザーは、未分離の週を使用して週ごとの総売上高を示すチャート オブジェクトを求めています。週が火曜日に始まるため、参照日は 1 月 2 日である必要があります。これは、チャートの計算軸として week() 関数を使用して、この軸がデータ モデルで使用できない場合でも実現できます。

ロード スクリプト

```
SET BrokenWeeks=1;
SET ReferenceDay=0;
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2019,58.27
8184,12/28/2019,67.42
8185,12/29/2019,23.80
8186,12/30/2019,82.06
8187,12/31/2019,40.56
8188,01/01/2020,37.23
8189,01/02/2020,17.17
8190,01/03/2020,88.27
8191,01/04/2020,57.42
8192,01/05/2020,53.80
8193,01/06/2020,82.06
8194,01/07/2020,40.56
8195,01/08/2020,53.67
8196,01/09/2020,26.63
8197,01/10/2020,72.48
8198,01/11/2020,18.37
8199,01/12/2020,45.26
8200,01/13/2020,58.23
8201,01/14/2020,18.52
];
```

結果

次の手順を実行します。

1. データをロードしてシートを開きます。新しいテーブルを作成します。

2. 次の計算軸を作成します。

   =week(date)

3. 次に、以下の集計メジャーを作成します。

   =sum(amount)

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

5. [ソート] メニューを選択し、計算軸に対して、カスタム ソートを削除します。

6. [数値でソート] と [アルファベット順でソート] オプションの選択を解除します。

結果テーブル

| week(date) | sum(amount) |
| --- | --- |
| 52 | $125.69 |
| 53 | $146.42 |
| 1 | $200.09 |
| 2 | $347.57 |
| 3 | $122.01 |