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

この関数は、以下を持つデュアル値を返します。

* 環境変数 DayNames で定義される日の名前。
* 曜日に相当する 0 から 6 までの整数。

構文:

weekday(date [,first\_week\_day=0])

戻り値データ型： デュアル

`weekday()` 関数は、日付がどの曜日に当たるかを決定します。次に、その日を示す文字列値を返します。

日付が当たる曜日の名前を返す `weekday()` 関数の図

日付が当たる曜日の名前を返す `weekday()` 関数の図

日付が当たる曜日の名前を返す `weekday()`weekday() 関数の図 ![weekday() 関数が日付が当たる曜日の名前を返す様子を示す図。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-diagram1.png)

結果は、週の開始日に基づいて、曜日 (0-6) に対応する数値を返します。例えば、週の初日が日曜日に設定されている場合、水曜日は `3` という数値を返します。この開始日は、`FirstWeekDay` システム変数、または `first_week_day` 関数パラメータによって決定されます。

この数値は、算術式の一部として使用できます。たとえば、`1` を乗算すると、値そのものが返されます。

日の名前でなく数値が表示されている `weekday()` 関数の図

日の名前でなく数値が表示されている `weekday()` 関数の図

日の名前でなく数値が表示されている `weekday()`weekday() 関数の図 ![weekday() 関数が、特定された日に対応する数値を返す様子を示した図。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-diagram2.png)

使用に適しているケース

`weekday()` 関数は、集計を曜日別に比較する場合に便利です。例えば、曜日別に製品の平均売上を比較するような場合です。

これらの軸は、関数を使用してマスター カレンダー テーブルに項目を作成することにより、ロード スクリプトで作成することも、計算メジャーとしてチャートで直接作成することもできます。

関連トピック

| トピック | 相互作用 |
| --- | --- |
| [FirstWeekDay](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | 各週の開始日を定義します。 |

| <ul> </ul> |
| --- |

引数

| 引数 | 説明 |
| --- | --- |
| date | 評価する日付またはタイムスタンプ。 |
| first\_week\_day | 週の開始日を指定します。省略されている場合は、変数 FirstWeekDay の値が使用されます。<br><br>[FirstWeekDay](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) |

次の値を使用して、`first_week_day` 引数で週が始まる日を設定できます。

first\_week\_day 値

| 日 | 値 |
| --- | --- |
| 月曜日 | 0 |
| 火曜日 | 1 |
| 水曜日 | 2 |
| 木曜日 | 3 |
| 金曜日 | 4 |
| 土曜日 | 5 |
| 日曜日 | 6 |

## 地域の設定

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

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

情報メモ特に述べられていない限り、以下の例において `FirstWeekDay` は `0` に設定されます。

関数の例

| 例 | 結果 |
| --- | --- |
| `weekday('10/12/1971')` | 'Tue' と 1 を返します。 |
| `weekday('10/12/1971' , 6)` | 'Tue' と 2 を返します。<br><br>この例では、日曜日 (`6`) が週の初日です。 |
| `SET FirstWeekDay=6;`<br><br>`...`<br><br>`weekday('10/12/1971')` | 'Tue' と 2 を返します。 |

## 例 1 - Weekday 文字列

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

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

概要

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

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

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

* (日曜日) に設定された `FirstWeekDay` システム変数。

* 既定の曜日名を使うよう設定された `DayNames` 変数。

* `weekday()` 関数を含む先行する LOAD で、[`week_day`] 項目として設定されており、トランザクションが発生した曜日を返します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
    Load 
       *, 
       WeekDay(date) as week_day 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
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.39 
]; 
```

結果

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

* `id`
* `date`
* `week_day`

結果テーブル

| id | date | week\_day |
| --- | --- | --- |
| 8188 | 01/01/2022 | 土 |
| 8189 | 01/02/2022 | 日 |
| 8190 | 01/03/2022 | 月 |
| 8191 | 01/04/2022 | 火 |
| 8192 | 01/05/2022 | 水 |
| 8193 | 01/06/2022 | 木 |
| 8194 | 01/07/2022 | 金 |

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

`weekday()` 関数は曜日文字列値を返します。つまり、`DayNames` システム変数によって設定された曜日の名前を返します。

トランザクション 8192 の曜日として水曜日を返す `weekday()` 関数。

トランザクション 8192 の曜日として水曜日を返す `weekday()` 関数。

トランザクション 8192 の曜日として水曜日を返す `weekday()`weekday() 関数。 ![weekday() 関数がトランザクション 8192 の曜日として水曜日を返す様子を示した図。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-examples1_and3-diagram.png)

トランザクション 8192 は 1 月 5 日に発生しました。`FirstWeekDay` システム変数は週の初日を日曜日に設定します。`weekday()` 関数トランザクションは水曜日に発生し、この値を `DayNames` システム変数の略式で [`week_day`] 項目に返します。

[`week_day`] 項目の値は列で右揃えされていますが、これは項目 (水曜日、3) にデュアル値とテキスト結果があるためです。項目値を同等の数値に変換するため、項目を `num()` 関数の内部にラップすることができます。例えば、トランザクション 8192、水曜日の値は数値 3 に変換されます。

## 例 2 – first\_week\_day

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

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

概要

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

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

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

* (日曜日) に設定された `FirstWeekDay` システム変数。

* 既定の曜日名を使うよう設定された `DayNames` 変数。

* `weekday()` 関数を含む先行する LOAD で、[`week_day`] 項目として設定されており、トランザクションが発生した曜日を返します。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
    Load 
       *, 
       WeekDay(date,1) as week_day 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
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.39 
]; 
```

結果

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

* `id`
* `date`
* `week_day`

結果テーブル

| id | date | week\_day |
| --- | --- | --- |
| 8188 | 01/01/2022 | 土 |
| 8189 | 01/02/2022 | 日 |
| 8190 | 01/03/2022 | 月 |
| 8191 | 01/04/2022 | 火 |
| 8192 | 01/05/2022 | 水 |
| 8193 | 01/06/2022 | 木 |
| 8194 | 01/07/2022 | 金 |

水曜日にデュアル値の 1 があることを示す `weekday()` 関数の図

水曜日にデュアル値の 1 があることを示す `weekday()` 関数の図

水曜日にデュアル値の 1 があることを示す `weekday()`weekday() 関数の図 ![2022 年 1 月 5 日が水曜日であり、週の初日が火曜日に設定されているために水曜日の数値が 1 であることを示す図。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-example2-diagram.png)

`first_week_day` 引数が `weekday()` 関数で `1` に設定されているため、週の初日は火曜日です。そのため、火曜日に発生するすべてのトランザクションにはデュアル値 `0` があります。

トランザクション 8192 は 1 月 5 日に発生します。`weekday()` 関数はこれが水曜日であることを特定するため、式はデュアル値 `1` を返します。

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

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

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

概要

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

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

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

* `6` (日曜日) に設定された `FirstWeekDay` システム変数。

* 既定の曜日名を使うよう設定された `DayNames` 変数。

ただし、この例ではデータセットは変更されず、アプリケーションにロードされます。曜日の値を特定する計算は、アプリのチャートのメジャーとして作成されます。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
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.39 
]; 
```

結果

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

* `id`
* `date`

曜日の値を計算するには、次のメジャーを作成します。

* `=weekday(date)`

結果テーブル

| id | date | =weekday(date) |
| --- | --- | --- |
| 8188 | 01/01/2022 | 土 |
| 8189 | 01/02/2022 | 日 |
| 8190 | 01/03/2022 | 月 |
| 8191 | 01/04/2022 | 火 |
| 8192 | 01/05/2022 | 水 |
| 8193 | 01/06/2022 | 木 |
| 8194 | 01/07/2022 | 金 |

[`=weekday(date)`] 項目は、`weekday()` 関数を使用し、関数の引数として日付項目を渡すことにより、チャートで作成されます。

`weekday()` 関数は曜日文字列値を返します。つまり、`DayNames` システム変数によって設定された曜日の名前を返します。

トランザクション 8192 の曜日として水曜日を返す `weekday()` 関数。

トランザクション 8192 の曜日として水曜日を返す `weekday()` 関数。

トランザクション 8192 の曜日として水曜日を返す `weekday()`weekday() 関数。 ![weekday() 関数がトランザクション 8192 の曜日として水曜日を返す様子を示した図。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-examples1_and3-diagram.png)

トランザクション 8192 は 1 月 5 日に発生しました。`FirstWeekDay` システム変数は週の初日を日曜日に設定します。`weekday()` 関数トランザクションは水曜日に発生し、この値を `DayNames` システム変数の略式で [`=weekday(date)`] 項目に返します。

## 例 4 – シナリオ

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

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

概要

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

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

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

* `6` (日曜日) に設定された `FirstWeekDay` システム変数。

* 既定の曜日名を使うよう設定された `DayNames` 変数。

エンド ユーザーは、トランザクションの曜日ごとの平均売上高を示すチャートを求めています。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
LOAD 
  RecNo() AS id, 
  MakeDate(2022, 1, Ceil(Rand() * 31)) as date, 
  Rand() * 1000 AS amount 
						
Autogenerate(1000); 
```

結果

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

* `=weekday(date)`
* `=avg(amount)`

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

結果テーブル

| =weekday(date) | Avg(amount) |
| --- | --- |
| 日 | $536.96 |
| 月 | $500.80 |
| 火 | $515.63 |
| 水 | $509.21 |
| 木 | $482.70 |
| 金 | $441.33 |
| 土 | $505.22 |