quartername - スクリプトおよびチャート関数
この関数は、四半期の初日の最初のミリ秒のタイムスタンプに対応する値を基底として、四半期の月数 (MonthNames スクリプト変数に従った書式) および年の表示値を返します。
構文:
QuarterName(date[, period_no[, first_month_of_year]])
戻り値データ型: dual
quartername() 関数は、日付がどの四半期に該当するかを判断します。次に、この四半期と年の開始と終了月を示す値を返します。この結果の基礎となる数値は、四半期の最初のミリ秒です。
引数 | 説明 |
---|---|
date | 評価する日付またはタイムスタンプ。 |
period_no | period_no は整数で、値 0 は date を含む四半期を示します。period_no の値が負の場合は過去の四半期を、正の場合は将来の四半期を示します。 |
first_month_of_year | 事業年度が 1 月以外の月に始まる場合は、first_month_of_year で 2 から 12 の間の値を指定します。 |
使用に適しているケース
quartername() 関数は、集計を四半期単位で比較する場合に便利です。たとえば、製品の総売上高を四半期ごとに表示する場合などが考えられます。
この関数は、マスター カレンダー テーブルに項目を作成することにより、ロード スクリプトで作成できます。あるいは、計算軸としてチャートで直接使用することもできます。
これらの例は、日付書式 DD/MM/YYYY を使用しています。日付書式は、データ ロード スクリプト上部の SET DateFormat ステートメントで指定されています。必要に応じて、書式を変更してください。
例 | 結果 |
---|---|
quartername('10/29/2013') | Oct-Dec 2013 を返します。 |
quartername('10/29/2013', -1) | Jul-Sep 2013 を返します。 |
quartername('10/29/2013', 0, 3) | Sep-Nov 2013 を返します。 |
地域の設定
特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの SET DateFormat ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。
App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。
例 1 – 追加の引数がない日付
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
-
Transactions というテーブルにロードされる、2022 年の一連のトランザクションを含むデータセット。
-
DateFormat システム変数形式 (MM/DD/YYYY) で提供されている日付項目。
-
トランザクションが発生した四半期を返す項目 [transaction_quarter] の作成。
必要に応じて、リストなどで他のテキストをここに追加します。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
quartername(date) as transaction_quarter
;
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
-
transaction_quarter
日付 | transaction_quarter |
---|---|
1/7/2022 | 2022 年 1 月~3 月 |
1/19/2022 | 2022 年 1 月~3 月 |
2/5/2022 | 2022 年 1 月~3 月 |
2/28/2022 | 2022 年 1 月~3 月 |
3/16/2022 | 2022 年 1 月~3 月 |
4/1/2022 | 2022 年 4 月~6 月 |
5/7/2022 | 2022 年 4 月~6 月 |
5/16/2022 | 2022 年 4 月~6 月 |
6/15/2022 | 2022 年 4 月~6 月 |
6/26/2022 | 2022 年 4 月~6 月 |
7/9/2022 | 2022 年 7 月~9 月 |
7/22/2022 | 2022 年 7 月~9 月 |
7/23/2022 | 2022 年 7 月~9 月 |
7/27/2022 | 2022 年 7 月~9 月 |
8/2/2022 | 2022 年 7 月~9 月 |
8/8/2022 | 2022 年 7 月~9 月 |
8/19/2022 | 2022 年 7 月~9 月 |
9/26/2022 | 2022 年 7 月~9 月 |
10/14/2022 | 2022 年 10 月~12 月 |
10/29/2022 | 2022 年 10 月~12 月 |
[transaction_quarter] 項目は、quartername() 関数を使用し、関数の引数として日付項目を渡すことにより、前の load ステートメントで作成されます。
quartername() 関数は始め、日付値が入っている四半期を特定します。次に、この四半期と年の開始と終了月を示す値を返します。
トランザクション 8203 は 2020 年 8 月 8 日に発生しました。quartername() 関数は、トランザクションが第 3 四半期に発生したことを特定し、そのため 2022 年の 7~9 月を返します。月は、MonthNames システム変数と同じ形式で表示されます。
例 2 – period_no 引数を持つ日付
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
-
最初の例と同じデータセットとシナリオ。
-
トランザクションが発生する前の四半期を返す項目 [previous_quarter] の作成。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
quartername(date,-1) as previous_quarter
;
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_quarter
日付 | previous_quarter |
---|---|
1/7/2022 | Oct-Dec 2021 |
1/19/2022 | Oct-Dec 2021 |
2/5/2022 | Oct-Dec 2021 |
2/28/2022 | Oct-Dec 2021 |
3/16/2022 | Oct-Dec 2021 |
4/1/2022 | 2022 年 1 月~3 月 |
5/7/2022 | 2022 年 1 月~3 月 |
5/16/2022 | 2022 年 1 月~3 月 |
6/15/2022 | 2022 年 1 月~3 月 |
6/26/2022 | 2022 年 1 月~3 月 |
7/9/2022 | 2022 年 4 月~6 月 |
7/22/2022 | 2022 年 4 月~6 月 |
7/23/2022 | 2022 年 4 月~6 月 |
7/27/2022 | 2022 年 4 月~6 月 |
8/2/2022 | 2022 年 4 月~6 月 |
8/8/2022 | 2022 年 4 月~6 月 |
8/19/2022 | 2022 年 4 月~6 月 |
9/26/2022 | 2022 年 4 月~6 月 |
10/14/2022 | 2022 年 7 月~9 月 |
10/29/2022 | 2022 年 7 月~9 月 |
この例では、-1 の period_no が quartername() 関数でオフセット引数として使用されたため、関数はトランザクションが第 3 四半期に発生したことを識別します。次に、1 つ前の四半期に戻って、この四半期と年の開始と終了月を示す値を返します。
トランザクション 8203 は 8 月 8 日に発生しました。quartername() 関数は、トランザクション発生前の四半期は 4 月 1 日~6 月 30 日に発生したことを特定しています。そのため、Apr-Jun 2022 を返します。
例 3 – first_week_day 引数を持つ日付
概要
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。ただし、この例では会計年度の始めを 3 月 1 日に設定する必要があります。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
quartername(date,0,3) as transaction_quarter
;
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
-
transaction_quarter
日付 | transaction_quarter |
---|---|
1/7/2022 | Dec-Feb 2021 |
1/19/2022 | Dec-Feb 2021 |
2/5/2022 | Dec-Feb 2021 |
2/28/2022 | Dec-Feb 2021 |
3/16/2022 | Mar-May 2022 |
4/1/2022 | Mar-May 2022 |
5/7/2022 | Mar-May 2022 |
5/16/2022 | Mar-May 2022 |
6/15/2022 | Jun-Aug 2022 |
6/26/2022 | Jun-Aug 2022 |
7/9/2022 | Jun-Aug 2022 |
7/22/2022 | Jun-Aug 2022 |
7/23/2022 | Jun-Aug 2022 |
7/27/2022 | Jun-Aug 2022 |
8/2/2022 | Jun-Aug 2022 |
8/8/2022 | Jun-Aug 2022 |
8/19/2022 | Jun-Aug 2022 |
9/26/2022 | Sep-Nov 2022 |
10/14/2022 | Sep-Nov 2022 |
10/29/2022 | Sep-Nov 2022 |
このインスタンスでは、first_month_of_year 引数 3 が quartername() 関数で使用されているため、年度の始めが 1 月 1 日から 3 月 1 日に移動します。そのため、その年の四半期は 3~5 月、6~8 月、9~11 月、12~2 月に分けられます。
トランザクション 8203 は 8 月 8 日に発生しました。quartername() 関数は、トランザクションが 6 月の始め~8 月の終わりの第 2 四半期に発生したことを特定しています。そのため、Jun-Aug 2022 を返します。
例 4 – チャート オブジェクトの例
概要
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには、最初の例と同じデータセットとシナリオが含まれます。
ただし、この例では、変更されていないデータセットがアプリケーションにロードされます。トランザクションが発生した四半期の終わりのタイムスタンプを返す計算は、アプリケーションのチャート オブジェクトのメジャーとして作成されます。
ロード スクリプト
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/022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:date。
次のメジャーを作成します:
=quartername(date)
日付 | =quartername(date) |
---|---|
1/7/2022 | 2022 年 1 月~3 月 |
1/19/2022 | 2022 年 1 月~3 月 |
2/5/2022 | 2022 年 1 月~3 月 |
2/28/2022 | 2022 年 1 月~3 月 |
3/16/2022 | 2022 年 1 月~3 月 |
4/1/2022 | 2022 年 4 月~6 月 |
5/7/2022 | 2022 年 4 月~6 月 |
5/16/2022 | 2022 年 4 月~6 月 |
6/15/2022 | 2022 年 4 月~6 月 |
6/26/2022 | 2022 年 4 月~6 月 |
7/9/2022 | 2022 年 7 月~9 月 |
7/22/2022 | 2022 年 7 月~9 月 |
7/23/2022 | 2022 年 7 月~9 月 |
7/27/2022 | 2022 年 7 月~9 月 |
8/2/2022 | 2022 年 7 月~9 月 |
8/8/2022 | 2022 年 7 月~9 月 |
8/19/2022 | 2022 年 7 月~9 月 |
9/26/2022 | 2022 年 7 月~9 月 |
10/14/2022 | 2022 年 10 月~12 月 |
10/29/2022 | 2022 年 10 月~12 月 |
[transaction_quarter] メジャーは、quartername() 関数を使用し、関数の引数として [date] 項目を渡すことにより、チャート オブジェクトで作成されます。
quartername() 関数は始め、日付値が入っている四半期を特定します。次に、この四半期と年の開始と終了月を示す値を返します。
トランザクション 8203 は 2020 年 8 月 8 日に発生しました。quartername() 関数は、トランザクションが第 3 四半期に発生したことを特定し、そのため 2022 年の 7~9 月を返します。月は、MonthNames システム変数と同じ形式で表示されます。
例 5 – シナリオ
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
-
Transactions というテーブルにロードされる、2022 年の一連のトランザクションを含むデータセット。
-
DateFormat システム変数形式 (MM/DD/YYYY) で提供されている日付項目。
エンド ユーザーは、トランザクションの四半期ごとの総売上高を示すチャート オブジェクトを求めています。これは、チャートの計算軸として quartername() 関数を使用して、この軸がデータ モデルで使用できない場合でも実現できます。
ロード スクリプト
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
];
結果
次の手順を実行します。
-
データをロードしてシートを開きます。新しいテーブルを作成します。
-
次の式を使用して計算軸を作成します。
=quartername(date)
-
次に、下記の集計メジャーを使って総売上を計算します:
=sum(amount)
-
メジャーの [数値書式] を [通貨] に設定します。
=quartername(date) | =sum(amount) |
---|---|
2022 年 7 月~9 月 | $446.31 |
2022 年 4 月~6 月 | $351.48 |
2022 年 1 月~3 月 | $253.89 |
2022 年 10 月~12 月 | $163.91 |