
- Qlik Cloud
- Qlik Sense
- 利用者
- 可視化・分析
ストーリーテリングで分析結果を簡単に共有!(その2)
今回はスライドに文字や図形を追加する方法や、作成したストーリーの共有・出力方法ついてお伝えします!
|
QlikViewやQlik Senseで使えるマスターカレンダーをご用意しましたので、ぜひご利用ください。
QlikViewやQlik Senseでカレンダーを自動生成するサンプルスクリプトはよく見かけますが、日本の祝日に対応したものがなかったため作成してみました。
カレンダーを自動生成するスクリプトに加え、「国民の祝日に関する法律」が制定された1948年から、2099年までの作成済みデータ(CSVファイル)も同梱しています。
振替休日や国民の休日にも対応した完全版ですので、ぜひダウンロードして使ってみてください。
祝日法の改正については以下のページで確認しています。
国民の祝日について – 内閣府
、祝日法の改正
ファイルはこちらです。ダウンロードしてご自由にお使いください。
master-calendar.zip
最新版(2021年1月14日作成)
上記のZipファイルには以下の3種類、計6個のファイルが含まれています。
「holidays」ではじまるファイルは祝日のみのデータ、「calendar」ではじまるファイルは平日を含むカレンダーのデータです。
スクリプトを使用するには、qvsファイルの内容をロードスクリプトに貼り付けて使用するか、またはInclude文によりqvsファイルを読み込んでください。
holidays.qvsとcalendar.qvsは、いずれも作成する日付の範囲を指定できます。
SET StartYear = 1948;
SET EndYear = 2099;
なにも指定しなかった場合は、今年(実行したときの日付)一年分のデータを作成します。
SET StartDate = '1948/07/20';
SET EndYear = '2099/12/31';
なにも指定しなかった場合は、今月(実行したときの日付)一ヶ月分のデータを作成します。
//祝日生成スクリプトの読み込み
SET StartYear = 1948;
SET EndYear = 2099;
$(Include=C:\Users\qlik\Desktop\holidays.qvs); //注1
RENAME Field HolidayDate to Date; //注2
//カレンダー生成スクリプトの読み込み
SET StartDate = '1948/07/20';
SET EndDate = '2099/12/31';
$(Include=C:\Users\qlik\Desktop\calendar.qvs); //注1
注1:qvsファイルのディレクトリは適宜変更してください。Qlik Senseをお使いの方は、さらに下の「Qlik SenseでのInclude文」もご確認ください。
注2:祝日テーブルでは日付の項目名を「HolidayDate」に、カレンダーテーブルでは日付の項目名を「Date」という名前にしています。
これらを関連付けたい場合は、RENAME文などで項目名を変更し、おなじ名前にしてください。
Qlik Senseではセキュリティの都合により、あらかじめ指定したディレクトリにあるファイルしか読み込めないようになっています。
Include文を使用するには、ファイルの置き場所をあらかじめデータ接続として定義しておく必要があります。
[接続の新規作成]→[フォルダ]を選択します。
|
パスと使用する名前を指定します。ここではパスに「.」を指定してカレントディレクトリ(qvfファイルとおなじディレクトリ、既定ではC:\Users\<ユーザー名>\Documents\Qlik\Sense\Apps)を指定しています。
|
定義した名前を使用して、Include文を指定します。
$(Include=lib://CurrentDir/holidays.qvs);
|
今回カレンダーのデータを公開しましたが、そもそもなぜカレンダーのデータが必要なのかというと、おもに以下の2つの理由が挙げられます。
・必要な日付データをすべて用意しておくため
・企業独自のルールや、日本独自の祝日の計算を簡単におこなうため
これらは、QlikViewやQlik Senseに限らず、ほかのソフトウェアにもある課題かと思いますが、QlikViewやQlik SenseはインメモリBIツールということもあり、複雑な日付演算を都度おこなうよりも、汎用的なカレンダーを作成してメモリに取り込んでおくという手法をよく採用します。
この汎用的なカレンダーのことを”マスターカレンダー”と呼びます。
マスターカレンダーという名前は正式な機能名などではないのですが、開発元のコミュニティサイトなどにも出てきますし、QlikViewやQlik Senseの技術者の間では普通に通じる単語です。
言ってみれば、マスターカレンダーは開発のベストプラクティス、またはデザインパターンといった位置付けのものです。
カレンダーの開始日、終了日を固定で指定するのではなく、明細のデータにあわせて自動取得したい場合があります。
たとえば、データベースに売上明細のテーブルがあったときに、これに含まれる日付の範囲でカレンダーを自動生成するということです。
その場合は以下のサンプルを参考にしてください。
売上明細:
LOAD ...
FROM ...;
//Residentにより売上明細を再読み込みし、日付の最小値と最大値を取得します。
StartEndDate:
LOAD Min(日付) AS StartDate,
Max(日付) AS EndDate
Resident 売上明細;
//Peek関数を使用して、最小値と最大値を変数に格納します。
LET StartDate =Peek('StartDate');
LET EndDate =Peek('EndDate');
LET Days = EndDate - StartDate + 1;
DROP Table StartEndDate;
Calendar:
LOAD Date('$(StartDate)' + RecNo() - 1, 'YYYY/MM/DD') as 日付
AutoGenerate Days;
マスターカレンダーの話からは逸れますが、Qlik Senseにはカレンダーに関する機能がいくつかありますので、ご紹介いたします。
Qlik Senseでは、日付の項目を取り込むと自動的に年、月、日などの項目が作成されます。
詳細はヘルプの以下のページをご参照ください。
自動取得項目 Qlik Sense
自動的にDeclare文とDerive文が定義されています。これにより、1つの日付から年、月、日などの項目が自動生成されます。
Declare文を編集することで、自動生成される項目名を変更したり、独自の項目を追加したりできます。
|
Year、Monthなどの項目が自動生成されています。
|
Qlik Sense 3.0の新機能にタイムアウェアチャートというものがあります。
これは、折れ線グラフなどでX軸を日付の項目にすると、自動的に見やすく表示してくれる機能です。
詳細はヘルプの以下のページをご参照ください。
タイムアウェア チャート 窶鈀 Qlik Sense
ヘルプには折れ線グラフのみに対応していると書かれていますが、新バージョンで機能が拡張され、折れ線グラフに加えて棒グラフとコンボチャートにも対応しています。
タイムアウェアチャートは、[プロパティ]パネル→[X軸:<項目名>]→[連続]→[連続スケールの使用]から設定できます。
初期設定で有効になっているため、無効にしたい場合以外は、この設定を操作する必要はありません。
|
タイムアウェアチャートを無効にしたい場合は、[連続スケールを使用]をオフにしてください。
タイムアウェアチャートが無効な場合、データとして存在する日付のみが表示されます。たとえば、下図では2008年1月4日や1月6日の値がありませんが、これはデータ中に存在しないためです。
|
タイムアウェアチャートが有効な場合、データに応じて自動的に年、月、日の表示が切り替わります。
下図は年の表示です。2008年に絞り込むと
|
月の表示にドリルダウンします。さらに1月に絞り込むと
|
日の表示にドリルダウンします。タイムアウェアチャートが無効な場合に表示されていなかった、1月4日や1月6日の値も表示されています。
|
今回はスライドに文字や図形を追加する方法や、作成したストーリーの共有・出力方法ついてお伝えします!
Qlik Senseでは、カスタム オブジェクトとしてRadar chart(レーダーチャート)が用意されています。Radar chartは商品別に複数の評価項目の評価値を確認したい場合などに便利です!この記事では、Radar chartの作成方法を紹介します。
ストーリーテリングの概要とスナップショットの操作についてお伝えします。