lastworkdate - スクリプトおよびチャート関数このページ上
lastworkdate 関数は、オプションで指定された holiday を考慮した上で、start_date に開始した場合に no_of_workdays (月~金曜日) の日数に達する最早終了日を返します。start_date と holiday は、有効な日付またはタイムスタンプでなければなりません。
構文:
lastworkdate( start_date, no_of_workdays {, holiday} )
戻り値データ型: 整数
lastworkdate() 関数の使用方法を示すカレンダー
制限事項
開始日が月曜日で終了日が金曜日の業務週以外に関与する地域やシナリオに対して lastworkdate() 関数を変更す方法はありません。
休日パラメータは文字列定数である必要があります。数式は使用できません。
使用に適しているケース
lastworkdate() 関数は、ユーザーが、プロジェクトが開始する日時とその期間発生する休日に基づいて、プロジェクトまたは課題に要請された終了日を計算するための数式の一部としてよく使用されます。
地域の設定
特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの SET DateFormat ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。
App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。
引数
start_date
評価する開始日。
no_of_workdays
作成する作業日数。
holiday
作業日から除外する休日期間。休日は文字列定数の日付として示されます。コンマで区切り、複数の休日を設定できます。
'12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014'
例 1 – 基本的な例
ロード スクリプトと結果
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
LastWorkDate(start_date,effort) as end_date
;
Load
id,
start_date,
effort
Inline
[
id,start_date,effort
1,01/01/2022,14
2,02/10/2022,17
3,05/17/2022,5
4,06/01/2022,12
5,08/10/2022,26
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
id
start_date
effort
end_date
結果テーブル
ID
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
スケジュールされた休日がないため、関数は定義された業務日数 (月~金) を開始日に加えて、最も早い終了日を算出します。
次のカレンダーには、プロジェクト 3 の開始と終了日が表示されています (業務日は緑色でハイライトされている)。
プロジェクト 3 の開始と終了日を示すカレンダー
例 2 - 単一の休日
ロード スクリプトと結果
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ただし、2022 年 5 月 18 日に休日が 1 日スケジュールされています。先行する LOAD の lastworkdate() 関数には、各プロジェクトが終了する予定の日時を特定する第 3引数に休日が含まれます。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
LastWorkDate(start_date,effort, '05/18/2022') as end_date
;
Load
id,
start_date,
effort
Inline
[
id,start_date,effort
1,01/01/2022,14
2,02/10/2022,17
3,05/17/2022,5
4,06/01/2022,12
5,08/10/2022,26
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
id
start_date
effort
end_date
結果テーブル
ID
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/24/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
単一のスケジュールされた休日は、lastworkdate() 関数に第 3 引数として入力されます。結果として、休日が終了日までの業務日の 1 日に当たるため、プロジェクト 3 の終了日は 1 日後にずれます。
次のカレンダーは、プロジェクト 3 の開始/終了日と、休日によりプロジェクトの終了日が 1 日変更されることを示しています。
プロジェクト 3 の開始と終了日、休日が 5 月 18 日であることを示すカレンダー
例 3 - 複数の休日
ロード スクリプトと結果
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ただし、5 月 19 日、20 日、21 日、および 22 日に対して 3 日の休日がスケジュールされています。先行する LOAD の lastworkdate() 関数には、各プロジェクトが終了する予定の日時を特定する第 3引数に休日が含まれます。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
LastWorkDate(start_date,effort, '05/19/2022','05/20/2022','05/21/2022','05/22/2022') as end_date
;
Load
id,
start_date,
effort
Inline
[
id,start_date,effort
1,01/01/2022,14
2,02/10/2022,17
3,05/17/2022,5
4,06/01/2022,12
5,08/10/2022,26
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
id
start_date
effort
end_date
結果テーブル
ID
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/25/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
4 日の休日は、開始日後の lastworkdate() 関数の引数と業務日数のリストとして入力されます。
次のカレンダーは、プロジェクト 3 の開始/終了日と、休日によりプロジェクトの終了日が 3 日変更されることを示しています。
プロジェクト 3 の開始と終了日、休日が 5 月 19~22 日であることを示すカレンダー
例 4 - 単一の休日 (チャート)
ロード スクリプトとチャートの数式
概要
最初の例と同じデータセットとシナリオが使用されます。
ただし、この例ではデータセットは変更されず、アプリにロードされます。[end_date ] 項目は、チャートのメジャーとして計算されます。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Projects:
Load
id,
start_date,
effort
Inline
[
id,start_date,effort
1,01/01/2022,14
2,02/10/2022,17
3,05/17/2022,5
4,06/01/2022,12
5,08/10/2022,26
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
end_date を計算するには、次のメジャーを作成します:
結果テーブル
ID
start_date
effort
=LastWorkDate(start_date,effort,'05/18/2022')
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
単一のスケジュールされた休日は、チャートのメジャーとして入力されます。結果として、休日が終了日までの勤務日の 1 日に当たるため、プロジェクト 3 の終了日は 1 日後にずれます。
次のカレンダーは、プロジェクト 3 の開始/終了日と、休日によりプロジェクトの終了日が 1 日変更されることを示しています。
プロジェクト 3 の開始と終了日、休日が 5 月 18 日であることを示すカレンダー