お問い合わせ
5 分で読むことができます。

QlikViewでマスターカレンダーを作成する方法

執筆者 Deck 更新日時 2014年7月10日

QlikViewでマスターカレンダーを作成する方法

目次

QlikViewでマスターカレンダーを作成する方法

QlikView(クリックビュー)では、年月日の最大日付(MaxDate)と最小日付(MinDate)の取得方法と変数に設定することができます。

以前の記事では「MaxDateとMinDateの取得方法」を紹介しました。

今回はマスターカレンダーを作成してみましょう。

 

生データでは存在しない日付をマスターカレンダーを作成することによって解消されます。

 

売上明細.csv を取り込む

06

 

① Ctrl+E を押し、ロードスクリプトの編集を開きます。

② 相対パスにチェックを入れます。

③ 『テーブルファイル』を押し「売上明細.csv」を取り込みます。

④ テーブル名を『売上』と入力します。

⑤ リロードします。

07

 

日付型を変更する(20060401    → 2006/06/01)

① 「Date(Date#(日付コード,'YYYYMMDD'),'YYYY/MM/DD') as 年月日」を追加します。

② リロードします。

08

 

取り込んだ項目の「年月日」と「日付コード」をリストボックスで表示する

① 空いているシートを右クリックし、「リストボックスの追加」を押します。

② 項目から「年月日」と「日付コード」を選択し、追加ボタンを押します。

③ 「OK」ボタンを押します。

09

 

※「年月日」 と 「日付コード」 リストボックスをよく見ると、日付が抜けているところが確認できます。

 

10

※2006/04/07 と 2006/04/14 が抜けていることが確認できます。

 

こちらの問題を解決するためにマスターカレンダーを作成します。

 

変数の設定/ minDate と MaxDate を取得 

MaxDateとMinDateの取得方法の説明はこちら

① 以下の文をロードスクリプトで入力します。

日付期間:
Load
Max(年月日)    AS DateMax,
Min(年月日)    AS DateMin
Resident 売上;

LET varMaxDate= FieldValue('DateMax', 1);

LET varMinDate= FieldValue('DateMin', 1);

 

マスターカレンダー作成

① 以下の文をロードスクリプトで入力します。

マスタカレンダー:
LOAD
    Year(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD'))                   as ,
    Date(Makedate(Year(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD')),
         Month(Date((IterNo())+ DayStart($(varMinDate)-1),'YYYY/MM/DD'))),'YYYY/MM')    as 年月,
    Month(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD'))                  as ,
    Date(Makedate(Year(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD')),
         Month(Date((IterNo())+ DayStart($(varMinDate)-1),'YYYY/MM/DD')),
    Day(Date((IterNo())+ DayStart($(varMinDate)-1),'YYYY/MM/DD'))),'YYYY/MM/DD')                         as 年月日,
    Day(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD'))                          as ,
    WeekStart(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD'))                     as ,
    WeekDay(Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD'))                     as 曜日
AutoGenerate (1)
While Date((IterNo()) + DayStart($(varMinDate)-1),'YYYY/MM/DD') <= Date($(varMaxDate),'YYYY/MM/DD');

 

② リロードします。

 

11

 

※ 「テーブルビューアー」でテーブルの構成を確認します。(Ctrl +T)

 

12

 

マスターカレンダーで「年月日」、「年」、「年月」、「月」、「日」、「週」、「曜日」が生成されていることを確認する

① 空いているシートを右クリックし、「リストボックスの追加」を押します。

② 項目から「年月日」、「年」、「年月」、「月」、「日」、「週」、「曜日」 を選択し、追加ボタンを押します。

③ 「OK」ボタンを押します。

 13

 

④ 日付コードでなかった「2006/04/07」, 「2006/04/14」 が「年月日」リストボックスで表示されているのが確認できます。

⑤ 「マスターカレンダー」と「売上」テーブルは「年月日」で紐付いているので、値を選択することによって連結されていることが確認できます。

14

 

この記事は、以上です。

 

Qlikで使えるloadscript(ロードスクリプト)一覧はこちら

QlikViewを体験してみませんか?

INSIGHT LABではQlik紹介セミナーを定期開催しています。QlikViewとQlik Senseの簡単な製品概要から、Qlikの特性である「連想技術」のご紹介、デモを通してQlikViewとQlik Senseの操作感や美しいインターフェースをご覧いただきます。企業の大切な資産である膨大なデータからビジネスを発見する 「Business Discovery」を是非ご体験ください。

詳細はこちら

Deck

執筆者 Deck

BIスペシャリスト

2 分で読むことができます。

QlikView 関数 まとめ一覧【重要関数大全】

2 分で読むことができます。

【QlikView/Qlik Sense】Set分析でCount関数を使う方法