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

この関数は、date を含む週周期の初日の最初のミリ秒のタイムスタンプに対応する年と週周期番号を表示する表示値を返します。Qlik Sense の旧暦の週は、1 月 1 日を週の初日として数えるよう定義され、1 年の最終週を除いて正確に 7 日構成となります。

構文:

LunarWeekName(date [, period\_no[, first\_week\_day]])

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

`lunarweekname()` 関数の図の例

`lunarweekname()` 関数の図の例

`lunarweekname()`lunarweekname() 関数の図の例 ![lunarweekname 関数で、入力された日付を、年と旧暦の週番号を組み合わせた値に変換する例の図。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-general.png)

`lunarweekname()` 関数は、日付が 1 月 1 日からの週カウントから始まる旧暦のどの週に当てはまるかを決定します。次に、`year/weekcount` から派生した値を返します。

引数

| 引数 | 説明 |
| --- | --- |
| date | 評価する日付またはタイムスタンプ。 |
| period\_no | period\_no は整数または計算結果が整数になる数式で、値 0 は date を含む週周期を示します。period\_no の値が負の場合は過去の週周期を、正の場合は将来の週周期を示します。 |
| first\_week\_day | 0 未満または 0 よりも大きい補正値。日数または 1 日未満の長さ、またはその両方を指定して、年の開始時点を変更できます。 |

## 使用に適しているケース

`lunarweekname()` 関数は、集計を旧暦の週単位で比較する場合に便利です。例えば、関数は旧暦の週当たりの製品の合計売上を決定するために使用できます。旧暦の週は、年の最初の週に含まれるすべての値が、最短で 1 月 1 日からの値だけを含む場合に役立ちます。

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

関数の例

| 例 | 結果 |
| --- | --- |
| `lunarweekname('01/12/2013')` | 2006/02 を返します。 |
| `lunarweekname('01/12/2013', -1)` | 2006/01 を返します。 |
| `lunarweekname('01/12/2013', 0, 1)` | 2006/02 を返します。 |

## リージョンの設定

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

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

## 例 1 – 追加の引数がない日付

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

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

概要

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

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

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

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

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

ロード スクリプト

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

Transactions:
    Load
        *,
        lunarweekname(date) as lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
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`

* `lunar_week_name`

結果テーブル

| date | lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/06 |
| 2/28/2022 | 2022/09 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/19 |
| 5/16/2022 | 2022/20 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/26 |
| 7/9/2022 | 2022/28 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/30 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/31 |
| 8/8/2022 | 2022/32 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/39 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/44 |

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

`lunarweekname()` 関数は、日付値がどの旧暦の週に該当するかを識別し、その日の年と週番号を返します。

`lunarweekname()` 関数の図、追加の引数がない例

`lunarweekname()` 関数の図、追加の引数がない例

`lunarweekname()`lunarweekname() 関数の図、追加の引数がない例![lunarweekname 関数で、入力された日付を、年と旧暦の週番号を組み合わせた値に変換する図。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-no-add-arg.png)

トランザクション 8189 は 1 月 19 日に発生しました。`lunarweekname()` 関数は、この日付が 1 月 15 日に始まる旧暦の週 (年の旧暦第 3 の週) に当たることを特定します。そのため、トランザクションに対して返された `lunar_week_name` 値は 2022/03 です。

## 例 2 – period\_no 引数を持つ日付

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

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

概要

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

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

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

* トランザクションが発生する前の旧暦の週の年と週番号を返す、項目 [`previous_lunar_week_name`] の作成。

ロード スクリプト

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

Transactions:
    Load
        *,
        lunarweekname(date,-1) as previous_lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
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_lunar_week_name`

結果テーブル

| date | previous\_lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2021/52 |
| 1/19/2022 | 2022/02 |
| 2/5/2022 | 2022/05 |
| 2/28/2022 | 2022/08 |
| 3/16/2022 | 2022/10 |
| 4/1/2022 | 2022/12 |
| 5/7/2022 | 2022/18 |
| 5/16/2022 | 2022/19 |
| 6/15/2022 | 2022/23 |
| 6/26/2022 | 2022/25 |
| 7/9/2022 | 2022/27 |
| 7/22/2022 | 2022/28 |
| 7/23/2022 | 2022/29 |
| 7/27/2022 | 2022/29 |
| 8/2/2022 | 2022/30 |
| 8/8/2022 | 2022/31 |
| 8/19/2022 | 2022/32 |
| 9/26/2022 | 2022/38 |
| 10/14/2022 | 2022/40 |
| 10/29/2022 | 2022/43 |

この例では、-1 の `period_no` が `lunarweekname()` 関数でオフセット引数として使用されたため、関数は最初にトランザクションが発生した旧暦の週を識別します。次に、年と 1 週間前の番号を返します。

`lunarweekname()` 関数の図、period\_no の例

`lunarweekname()` 関数の図、period\_no の例

`lunarweekname()`lunarweekname() 関数の図、period\_no の例![lunarweekname 関数が、トランザクションの入力日付を、トランザクションが発生した年と旧暦の週番号を表示する組み合わせ値に変換する様子を示した図。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-period-no.png)

トランザクション 8189 は 1 月 19 日に発生しました。`lunarweekname()` 関数は、このトランザクションが年の旧暦の第三週に発生したことを特定し、次に [`previous_lunar_week_name`] 項目に対して年と 1 週間前の値 2022/02 を返します。

## 例 3 – first\_week\_day 引数を持つ日付

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

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

概要

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

ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。この例では、旧暦の週が 1 月 5 日に始まるよう設定しています。

ロード スクリプト

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

Transactions:
    Load
        *,
        lunarweekname(date,0,4) as lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
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`

* `lunar_week_name`

結果テーブル

| date | lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/05 |
| 2/28/2022 | 2022/08 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/18 |
| 5/16/2022 | 2022/19 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/25 |
| 7/9/2022 | 2022/27 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/29 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/30 |
| 8/8/2022 | 2022/31 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/38 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/43 |

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

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

`lunarweekname()`lunarweekname() 関数、first\_week\_day 例の図![lunarweekname 関数で、各トランザクションの入力日付を、年と旧暦の週番号を組み合わせた値に変換する様子を示した図。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-first-week-day.png)

このインスタンスでは、`first_week_date` 引数である 4 が `lunarweekname()` 関数で使用されるため、1 月 1 日から 1 月 5 日に旧暦の週の初めがオフセットされます。

トランザクション 8188 は 1 月 7 日に発生しました。旧暦の週が 1 月 5 日に始まるため、`lunarweekname()` 関数は 1 月 7 日を含む旧暦の週が年の最初の旧暦の週であることを特定します。そのため、トランザクションに対して返された `lunar_week_name` 値は 2022/01 です。

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

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

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

概要

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

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

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

ロード スクリプト

```
Transactions:
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
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。

トランザクションが発生する旧暦の週の開始日を計算するには、次のメジャーを作成します:

=lunarweekname(date)

結果テーブル

| date | =lunarweekname(date) |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/06 |
| 2/28/2022 | 2022/09 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/19 |
| 5/16/2022 | 2022/20 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/26 |
| 7/9/2022 | 2022/28 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/30 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/31 |
| 8/8/2022 | 2022/32 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/39 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/44 |

[lunar\_week\_name] メジャーは、lunarweekname() 関数を使用し、関数の引数として [date] 項目を渡すことにより、チャート オブジェクトで作成されます。

lunarweekname() 関数は、日付値がどの旧暦の週に該当するかを識別し、その日の年と週番号を返します。

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

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

lunarweekname()lunarweekname() 関数の図、チャート オブジェクトの例![lunarweekname 関数で、入力された日付を、年と旧暦の週番号を組み合わせた値に変換する図。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-chart-object.png)

トランザクション 8189 は 1 月 19 日に発生しました。lunarweekname() 関数は、この日付が 1 月 15 日に始まる旧暦の週 (年の旧暦第 3 の週) に当たることを特定します。そのため、トランザクションに対する lunar\_week\_name 値は 2022/03 です。

## 例 5 – シナリオ

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

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

概要

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

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

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

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

エンド ユーザーは、現行年の週ごとの総売上高を示すチャート オブジェクトを求めています。第 1 週 (7 日間) は 1 月 1 日に始まる必要があります。これは、lunarweekname() 関数をチャートの計算軸として使用することにより、この軸がデータ モデルにない場合でも実現できます。

ロード スクリプト

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

Transactions:
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
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
];
```

結果

次の手順を実行します。

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

2. 次の式を使用して計算軸を作成します。

   =lunarweekname(date)

3. 次の集計メジャーを使って、総売上を計算します。

   =sum(amount)

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

結果テーブル

| =lunarweekname(date) | =sum(amount) |
| --- | --- |
| 2022/01 | $17.17 |
| 2022/03 | $37.23 |
| 2022/06 | $57.42 |
| 2022/09 | $88.27 |
| 2022/11 | $53.80 |
| 2022/13 | $82.06 |
| 2022/19 | $40.39 |
| 2022/20 | $87.21 |
| 2022/24 | $95.93 |
| 2022/26 | $45.89 |
| 2022/28 | $36.23 |
| 2022/29 | $25.66 |
| 2022/30 | $152.75 |
| 2022/31 | $76.11 |
| 2022/32 | $25.12 |
| 2022/33 | $46.23 |
| 2022/39 | $84.21 |
| 2022/41 | $96.24 |
| 2022/44 | $67.67 |