inlunarweek - スクリプトおよびチャート関数
この関数は、timestamp が base_date を含む週周期の範囲内か確認します。Qlik Sense の週周期は、1 月 1 日を週の最初の日と見なして定義されています。
構文:
InLunarWeek
(timestamp, base_date, period_no[, first_week_day])
戻り値データ型: ブール値
引数:
引数
timestamp
|
base_date と比較する日付。 |
base_date
|
週周期の評価に使用する日付。 |
period_no
|
週周期は period_no によって補正することができます。period_no は整数で、値 0 は base_date を含む週周期を示します。period_no の値が負の場合は過去の週周期を、正の場合は将来の週周期を示します。 |
first_week_day
|
0 未満または 0 よりも大きい補正値。日数または 1 日未満の長さ、またはその両方を指定して、年の開始時点を変更できます。 |
スクリプトの例
inlunarweek('12/01/2013', '14/01/2013', 0)
|
True を返します。timestamp の値 12/01/2013 は、08/01/2013 から 14/01/2013 までの週の範囲内です。 |
inlunarweek('12/01/2013', '07/01/2013', 0)
|
False を返します。base_date 07/01/2013 は、01/01/2013 から 07/01/2013 までの週周期の範囲内です。 |
inlunarweek('12/01/2013', '14/01/2013', -1)
|
False を返します。period_noの値に-1 が指定されており、前の週である 01/01/2013 から 07/01/2013 に週がシフトしています。 |
inlunarweek('07/01/2013', '14/01/2013', -1)
|
True を返します。上の例と異なり、週を過去へシフトするとタイムスタンプがその週の範囲内になります。 |
inlunarweek('11/01/2006', '08/01/2006', 0, 3)
|
False を返します。first_week_day の値に 3 を指定した場合、年の始まりが 04/01/2013 から計算されるので、base_date の値が最初の週の範囲内になり、timestamp の値が 11/01/2013 から 17/01/2013 までの週の範囲内になります。 |
アプリにスクリプト例を追加して実行します。結果を表示するには、結果列に含まれている項目をアプリのシートに追加します。
この例では、請求書日付が、base_date の値から 4 週間シフトした週の範囲内かどうか確認します。
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
InLunarWeek(InvDate, '11/01/2013', 4) AS InLWeekPlus4
Resident TempTable;
Drop table TempTable;
結果テーブルには、元の日付と、inlunarweek() 関数の戻り値の列が含まれています。
この関数は、InvDate の値 5/2/2013 に対して True を返します。base_date の値 11/01/2013 は 4 週間シフトされており、5/02/2013 から 11/02/2013 の週の範囲内です。
結果テーブル
InvDate |
InLWeekPlus4 |
28/03/2012 |
0 (False) |
10/12/2012 |
0 (False) |
5/2/2013 |
-1 (True) |
31/3/2013 |
0 (False) |
19/5/2013 |
0 (False) |
15/9/2013 |
0 (False) |
11/12/2013 |
0 (False) |
2/3/2014 |
0 (False) |
14/5/2014 |
0 (False) |
13/6/2014 |
0 (False) |
7/7/2014 |
0 (False) |
4/8/2014 |
0 (False) |