quartername - 指令碼與圖表函數
此函數會傳回顯示當季度月份 (根據 MonthNames 指令碼變數進行格式設定) 和年度的顯示值,其基礎數值相當於該季度第一天、第一毫秒的時間戳記。
語法:
QuarterName(date[, period_no[, first_month_of_year]])
傳回的資料類型: 雙值
quartername() 函數判定日期落在哪一季。然後這傳回值,顯示此季的開始到結束月份以及該年。此結果的基礎數值是該季的第一毫秒。
引數 | 描述 |
---|---|
date | 要評估的時間戳記。 |
period_no | period_no 為整數,值 0 表示是包含 date 的季度。負值的 period_no 表示之前的季度,正值表示之後的季度。 |
first_month_of_year | 如果要使用不起始於 1 月的 (會計) 年度,可在 first_month_of_year 中指定介於 2 和 12 之間的值。 |
什麼情況下使用
若您想要按季度比較彙總,則 quartername() 函數很實用。例如,若您想要按季度查看產品的總銷售額。
此函數可用於載入指令碼中,以建立主要行事曆表格中的欄位。相反地,這可直接在圖表中作為計算維度使用。
這些範例使用日期格式 MM/DD/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 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。如需詳細資訊,請參閱 修改用於應用程式和指令碼的區域設定。
應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。
若您是應用程式建立者,可以為您建立的應用程式設定預設地區。如需詳細資訊,請參閱Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定。
範例 1 – 無其他引數的日期
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
包含一組 2022 年交易的資料集,這載入到稱為 Transactions 的表格中。
-
以 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 欄位在前置 LOAD 陳述式中的建立方式是使用 quartername() 函數並傳遞日期欄位,作為函數的引數。
quartername() 函數最初識別日期值落在的季。然後這傳回值,顯示此季的開始到結束月份以及該年。
交易 8203 發生於 2022 年 8 月 8 日。quartername() 函數識別交易發生在第三季,因此傳回 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 | 2021 年 10 月至 12 月 |
1/19/2022 | 2021 年 10 月至 12 月 |
2/5/2022 | 2021 年 10 月至 12 月 |
2/28/2022 | 2021 年 10 月至 12 月 |
3/16/2022 | 2021 年 10 月至 12 月 |
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 月 |
在此例中,因為 period_no 的值 -1 已作為 quartername() 函數中的偏移引數使用,所以該函數首先會識別交易發生在第三季。然後這會往前偏移一季,並傳回值,顯示此季的開始到結束月份以及該年。
交易 8203 發生於 8 月 8 日。quartername() 函數識別交易發生的前一季介於 4 月 1 日和 6 月 30 日之間。因此,這會傳回 2022 年 4 月至 6 月。
範例 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 | 2021 年 12 月至 2 月 |
1/19/2022 | 2021 年 12 月至 2 月 |
2/5/2022 | 2021 年 12 月至 2 月 |
2/28/2022 | 2021 年 12 月至 2 月 |
3/16/2022 | 2022 年 3 月至 5 月 |
4/1/2022 | 2022 年 3 月至 5 月 |
5/7/2022 | 2022 年 3 月至 5 月 |
5/16/2022 | 2022 年 3 月至 5 月 |
6/15/2022 | 2022 年 6 月至 8 月 |
6/26/2022 | 2022 年 6 月至 8 月 |
7/9/2022 | 2022 年 6 月至 8 月 |
7/22/2022 | 2022 年 6 月至 8 月 |
7/23/2022 | 2022 年 6 月至 8 月 |
7/27/2022 | 2022 年 6 月至 8 月 |
8/2/2022 | 2022 年 6 月至 8 月 |
8/8/2022 | 2022 年 6 月至 8 月 |
8/19/2022 | 2022 年 6 月至 8 月 |
9/26/2022 | 2022 年 9 月至 11 月 |
10/14/2022 | 2022 年 9 月至 11 月 |
10/29/2022 | 2022 年 9 月至 11 月 |
在此例中,因為 first_month_of_year 引數 3 用於 quartername() 函數,所以該年的開始從 1 月 1 日移至 3 月 1 日。因此,該年的季分為 3 月 - 5 月、6 月 - 8 月、9 月 - 11 月和 12 月 - 2 月。
交易 8203 發生於 8 月 8 日。quartername() 函數識別交易發生在第二季,介於 6 月 開始和 8 月結束之間。因此,這會傳回 2022 年 6 月至 8 月。
範例 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 發生於 2022 年 8 月 8 日。quartername() 函數識別交易發生在第三季,因此傳回 2022 年 7 月至 9 月。月份的顯示格式與 MonthNames 系統變數相同。
範例 5 – 情境
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
包含一組 2022 年交易的資料集,這載入到稱為 Transactions 的表格中。
-
以 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 |