GRANVALLEY
データであなたの「ミチ」をてらす

GRANVALLEY

ブログBlog

QlikView: カレンダーを自動生成する

マスターカレンダーとは

今回は QlikView® でのマスターカレンダーの作成方法をご紹介します。Qlik Senseでは、Ver 2.2から自動で日付型のデータから「年」、「四半期」、「月」等の項目を生成することができますが、QlikViewでもマスターカレンダーを生成することで「年」、「四半期」、「月」等、必要に応じた項目の生成と販売伝票に含まれない日付を表示することが可能になります。

QlikView:マスターカレンダー

マスターカレンダーの作成方法

マスターカレンダー作成用のスクリプトです。このスクリプトをコピーし「ロードスクリプトの編集」画面の中にあるスクリプトに追加し、以下の指定した場所(コメント欄の注意)を修正していただければマスターカレンダーを作成することができます。


//販売伝票テーブルの日付から最小値(=開始日)と最大値(=終了日)を取り出す
//注意:「伝票日付」を日付型の項目名、「販売伝票」を日付型の項目名を含んでいる
//テーブル名に変更してください。

minmaxdate:
LOAD
	min(伝票日付) as 開始日,
	max(伝票日付) as 終了日
Resident 販売伝票;

//取り出した開始日を変数varMinDateに定義

LET varMinDate = Num (Peek('開始日',0,'minmaxdate'));

//取り出した終了日を変数varMaxDateに定義

LET varMaxDate = Num( Peek('終了日',0,'minmaxdate'));

DROP Table minmaxdate;

//********* Temporary Calendar ****************
//開始日から終了日までのデータを作成

DateField: 
LOAD
	$(varMinDate) + RowNo() - 1 AS Num,
	date($(varMinDate) + RowNo() -1) AS TempDate
AutoGenerate
	$(varMaxDate) - $(varMinDate) +1;

//********* Master Calendar ****************
//マスターカレンダー:
// 通常の日付作成処理

LOAD
	TempDate AS 伝票日付,
	year(TempDate) as 年,
	month(TempDate) as 月,
	week(TempDate) as 週,
	day(TempDate) as 日,
	WeekDay(TempDate) as 曜日,
      Date(MonthStart(TempDate),'YYYY_MM') as 年月
	Resident DateField
Order BY TempDate ASC;

//DateFieldをDROP

DROP Table DateField;

以上のマスターカレンダー作成スクリプトを追加し、ロードしてください。
これにより、マスターカレンダーが作成できます。

※ Qlik、QlikView、Qlik Sense、NPrinting、QlikTech は、QlikTech International AB の商標または登録商標です。
※ その他の会社名、製品名は各社の登録商標または商標です。
※ 記事の内容は記事公開時点での情報です。閲覧頂いた時点では異なる可能性がございます。