はじめに
コース概要と目的 本コースは、Qlik Sense入門の内容を踏まえ、より実践的なアプリケーション開発についてご覧いただくコースです。 データベースから取り込んだデータを自由に加工する方法や、チャートにさまざまな集計値を表示する方法などにつ いて、身に付けることを目的とします。 受講対象 「Qlik Sense入門」を受講された方、もしくは同等の知識をお持ちの方。 製品のバージョン 本テキストで解説しているQlik Senseは以下のバージョンを使用しています。 ・Qlik Sense June 2018テキスト中の表記について 画面中に表示される文字の表記 ウィンドウ、ボタン、メニューなど、画面に表示される文字は[]で囲んで表記しています。 画面上に表示される選択肢や、入力する文字については「」で囲んで表記しています。 ディレクトリの表記 本テキストではファイルのパスを表す際、すべてデフォルトのインストールディレクトリを基準に表記しています。 お客様の環境と異なる場合は、適宜読み替えてください。 コマンドの構文規約 値 この表記は、ユーザーが適切な値に置き換えて指定することを表します。 { 値1 | 値2 | 値3 } この表記は{}の中から、いずれか1つを選択することを表します。 [値] この表記はその指定が任意に指定できる、オプションの指定であることを表します。必 ずしも指定する必要はありません。
・Qlik、QlikView 、Qlik Sense、QlikTechおよびQlikTechのロゴは、QlikTech International ABの登録商 標です。
・Microsoft、Windows、Microsoft Office、SQL Server、その他本書に記載されるマイクロソフト製品は、米 国Microsoft Corporationの、米国、日本およびその他の国における登録商標または商標です。 ・Linuxは、Linus Torvalds氏の日本およびその他の国における登録商標または商標です。 ・UbuntuおよびCanonicalは、Canonical Ltd.の登録商標です。 ・OracleとJavaは、Oracle Corporationおよびその子会社、関連会社の米国およびその他の国における登録 商標です。文中の社名、商品名などは各社の商標または登録商標である場合があります。 ・IBM、IBMロゴ、ibm.com、DB2およびdeveloperWorksは、世界の多くの国で登録されたInternational Business Machines Corp.の商標です。
・Mac、Mac OS、Safari、iPhone、iPadは、米国およびほかの国々で登録されたApple Inc.の商標です。 ・Google Chrome、AndroidはGoogle Inc.の商標です。
・Adobe、Adobeのロゴ、Adobe Reader、Acrobat、Flashは、Adobe Systems Incorporated(アドビ シス テムズ社)の商標です。
・Apache、Tomcatは、Apache Software Foundationの商標または登録商標です。
・Mozilla、Firefoxの名称およびそのロゴは、米国Mozilla Foundationの米国およびその他の国における商標 または登録商標です。 ・その他、記載されている会社名および製品名は、各社の登録商標または商標です。 ・本書では、®、©、TMマークなどは特に明記していません。 ・本書に記載された内容を使用して、いかなる損害が発生しても、株式会社アシスト、および、著者、本書製作関 係者は一切責任を負いません。
目次
第1章 さまざまな関数
1.1 Qlik Senseの関数...1-1
1.1.1 Qlik Senseの関数...1-1 1.1.2 関数の使用例1(If関数)...1-3 1.1.3 関数の使用例2(Class関数)...1-7 1.1.4 関数の使用例3(日付関数)...1-12 1.1.5 TOTAL修飾子、DISTINCT修飾子...1-191.2 Qlik Senseのデータ型...1-27
1.2.1 Qlik Senseのデータ型...1-27 1.2.2 データ型変換関数と書式設定関数...1-28 1.2.3 デュアル値について理解する...1-35 1.2.4 NULL値について理解する...1-40 1.2.5 端数処理...1-451.3 Aggr関数...1-46
1.3.1 Aggr関数とは...1-46 1.3.2 計算軸の作成...1-47 1.3.3 集計関数のネスト...1-511.4 その他の関数...1-55
1.4.1 レコード関数(Above関数など)...1-55 1.4.2 範囲関数(RangeSum関数)...1-601.5 練習問題...1-64
1.5.1 練習問題...1-641.6 第1章のまとめと章末付録...1-67
1.6.1 まとめ...1-67 1.6.2 章末付録...1-68第2章 データモデリング
2.1 データモデリングの概要...2-1
2.1.1 データモデリングの概要...2-12.2 データ構造の変換...2-2
2.2.1 列から行への変換(Crosstableプレフィックス)...2-2 2.2.2 テーブルの連結(Concatenateプレフィックス)...2-92.3 データの結合...2-17
2.3.1 テーブルの結合(Joinプレフィックス)...2-17 2.3.2 データ値の置き換え(MappingプレフィックスとApplyMap関数)...2-212.4 集合演算...2-28
2.4.1 集合演算(Keepプレフィックス)...2-28 2.4.2 差分をもとめる(Exists関数)...2-322.5 テーブルの再読み込み...2-33
2.5.1 テーブルの再読み込み(Resident句)...2-33 2.5.2 Resident句の使用例...2-34 2.5.3 Load文のネストとResident句...2-392.6 データモデリングの実践...2-40
2.6.1 キーの作成(AutoNumber関数、AutoNumberHash関数)...2-40 2.6.2 循環参照の解決...2-52 2.6.3 マルチファクトの解決(リンクテーブル)...2-53 2.6.4 マスターカレンダーの作成...2-59 2.6.5 その他の参考情報...2-612.7 練習問題...2-62
2.7.1 練習問題...2-622.8 第2章のまとめと章末付録...2-66
2.8.1 まとめ...2-66 2.8.2 章末付録...2-67第3章 QVDファイルと差分更新
3.1 QVDファイル...3-1
3.1.1 QVDファイルとは...3-1 3.1.2 QVDファイルの作成(Store文)...3-33.2 差分更新...3-8
3.2.1 Qlik Senseでの差分更新...3-8 3.2.2 差分更新のシナリオ...3-16 3.2.3 差分更新の例1(挿入のみの場合)...3-18 3.2.4 差分更新の例2(更新や削除がある場合)...3-283.3 練習問題...3-40
3.3.1 練習問題...3-403.4 第3章のまとめと章末付録...3-42
3.4.1 まとめ...3-42 3.4.2 章末付録...3-43第4章 SET分析
4.1 SET分析...4-1
4.1.1 SET分析の基本...4-1 4.1.2 条件式の指定...4-7 4.1.3 複数の値の指定...4-11 4.1.4 前年比...4-17 4.1.5 前年比(動的な値の取得)...4-22 4.1.6 その他の機能と指定方法のまとめ...4-254.2 練習問題...4-26
4.2.1 練習問題...4-264.3 第4章のまとめと章末付録...4-27
4.3.1 まとめ...4-27 4.3.2 章末付録...4-27第5章 可視化の実践
5.1 チャートの活用...5-1
5.1.1 チャートの分類...5-1 5.1.2 棒グラフを活用する...5-10 5.1.3 数値の分布や相関関係を確認する...5-16 5.1.4 マップを活用する...5-255.2 可視化のポイント...5-36
5.2.1 可視化のポイント...5-36 5.2.2 情報の階層を整理する...5-37 5.2.3 チャートの配置を検討する...5-41 5.2.4 色を効果的に使う...5-44 5.2.5 アプリをシンプルにする...5-475.3 練習問題...5-60
5.3.1 練習問題...5-605.4 第5章のまとめと章末付録...5-64
5.4.1 まとめ...5-64 5.4.2 章末付録...5-65A 付録
A.1 付録...A-3
A.1.1 マッピングテーブルを使用した項目名の変更...A-3 A.1.2 データベース中の値を変数に格納する(Peek関数)...A-5 A.1.3 InlineとAutoGenerate...A-7 A.1.4 フォルダデータ接続...A-9さまざまな関数
1.1 Qlik Senseの関数
1.1.1 Qlik Senseの関数
Qlik Senseには、独自の関数が数多く用意されています。 下図は関数の一例です。 Qlik Sense応用コース 1-1この章ではよく使用する関数についてご覧いただきます。
その他の関数や、関数の構文の詳細についてはQlik Senseのヘルプでご確認いただけます。
スクリプトおよびチャート数式での関数 - Qlik Sense
https://help.qlik.com/ja-JP/sense/February2018/Subsystems/Hub/Content/Scripting/ functions-in-scripts-chart-expressions.htm
本テキスト作成時点で、日本語版のヘルプが提供されているのはQlik Sense February 2018以前のバージョン となります。
該当のバージョンで日本語版の提供が開始されると、ヘルプ画面右上のメニューから「日本語」を選択できるように なります。
1-2 Copyright(C) 2018 K.K. Ashisuto All Rights Reserved. バージョンを選択できます。
さまざまな関数
1.1.2 関数の使用例1(If関数)
If関数は条件式を元に演算をおこないます。 条件式を指定して、条件式を満たすときの値と満たさなかったときの値を指定します。 If(条件式, 値1 [, 値2]) 条件式 条件式を指定します。 値1 条件式を満たすときの値を指定します。 値2 条件式を満たさなかったときの値を指定します。 省略すると、条件式を満たさなかった場合はNULL値が返されます。 例 実績が目標以上だった場合は「達成」、目標未満だった場合は「未達成」と表示します。 If(実績 >= 目標, '達成', '未達成')例
題1 If関数の利用 If関数を使用して単価の項目を元に、単価区分の項目を作成してみましょう。 下図は単価ごとに納品数量を集計した円グラフです。 単価のような金額のデータを軸にする場合、元のデータをそのまま使用するのではなく、ある一定の単位でグループ 化することがよくあります。 Qlik Sense応用コース 1-31 REI101を開き、「円グラフ」のシートに切り替えます。 単価ごとの納品数量を円グラフで集計しています。単価のデータの種類が多く、一目で傾向がつかみにくいグ ラフとなっています。 よりわかりやすいグラフにするために、単価を「1万円未満」「1万円以上」「10万円以上」の3つの区分でグ ループ化します。 2 データロードエディタを起動します。 まずは、「10万円未満」、「10万円以上」という2つの条件でグループ化します。 商品テーブルの末尾に、以下の指定を追加します。 以上で設定は完了です。データをロードします。
1-4 Copyright(C) 2018 K.K. Ashisuto All Rights Reserved. If(単価 >= 100000, '10万円以上', '10万円未満') as 単価区分;
さまざまな関数 3 [アプリ概要]から「テーブル」のシートを開きます。シートの編集画面を表示し、[アセット]パネルから「単価 区分」を追加します。 単価区分のテーブルが追加されたら、サイズを調整します。 4 単価がグループ化されていることを確認します。 単価区分の値を選択し、動作を確認します。 また、「円グラフ」シートに切り替え、単価区分を軸とした円グラフを確認します。 Qlik Sense応用コース 1-5
5 次に、1万円未満、1万円以上、10万円以上という条件でグループ化します。 データロードエディタを起動し、以下の指定に編集します。 以上で設定は完了です。データをロードします。 Tip この例では見やすいように、If関数の途中で改行していますが、改行は必須ではありません。 6 [アプリ概要]から「テーブル」のシートと「円グラフ」のシートを開き、単価区分の動作を確認します。
1-6 Copyright(C) 2018 K.K. Ashisuto All Rights Reserved. If(単価 >= 100000, '10万円以上',
5.1.2 棒グラフを活用する
ここまででご覧いただいたとおり、棒グラフは値の比較をしたり、2値の隔たりを見たり、または円グラフのかわりに割合 を表示したりと、多くの用途に使用できます。 ここでは、単純な棒グラフ以外の棒グラフについて見ていきます。例
題1 棒グラフの活用 コンボチャートや100%積み上げ棒グラフなどを作成してみましょう。ここでは、作成済みのチャートを下図のように変 更してみましょう。5-10 Copyright(C) 2018 K.K. Ashisuto All Rights Reserved. コンボチャートでマーカーを使用
100% 積み上げ棒グラフ 円グラフを棒グラフに変換
変更前
可視化の実践 1 REI501を開いて、[編集]ボタンをクリックしてください。 まず画面上部の棒グラフをコンボチャートに変換します。 [アセット]パネルの[チャート]タブから、「コンボチャート」を棒グラフ上にドラッグ&ドロップして、[以下に変 換:コンボチャート]を選択します。 2 [プロパティ]パネルの[データ]-[メジャー]で「昨年度売上集計」を開きます。「マーカー」を選択し、「線」を 選択します。 Qlik Sense応用コース 5-11
3 つづいて、画面左下の円グラフを棒グラフに変換します。
[アセット]パネルの[チャート]タブから、「棒チャート」を円グラフ上にドラッグ&ドロップして、[以下に変換:棒 チャート]を選択します。
4 横棒グラフで表示してみましょう。
[プロパティ]パネルの[スタイル]-[プレゼンテーション]で「水平」を選択します。
可視化の実践 5 棒グラフの値が割合ではなく実数になっています。数式を編集して割合の表示に変更してみましょう。 [データ]-[メジャー]で[数式]を以下の数式に変更します。 また、割合の表示にするために、数値書式を下図のように変更してみましょう。 6 グリッド線やX軸ラベルを削除して、かわりに値ラベルを表示してみましょう。 [スタイル]-[プレゼンテーション]で[グリッド線の間隔]の[自動]を無効にして、[カスタム]を「なし」に設定 します。 また[値ラベル]を有効にします。 Qlik Sense応用コース 5-13 Sum([売上金額]) / Sum(total [売上金額])
7 [スタイル]-[X軸]で[ラベルとタイトル]を「なし」に設定します。
8 最後に、画面右下の棒グラフを100%積み上げ棒グラフに変更してみましょう。 棒グラフを選択して、[プロパティ]パネルの[スタイル]-[プレゼンテーション]を開きます。 「積み上げ」と「水平」を選択します。
可視化の実践 9 100%積み上げ棒グラフに変更してみましょう。前回のグラフと同じように、数式を編集して割合の表示に変 更します。 [データ]-[メジャー]で[数式]を以下の数式に変更します。 また、割合の表示にするために、数値書式を下図のように変更してみましょう。 10 以上で完成です。結果を確認してみましょう。 Qlik Sense応用コース 5-15 Sum([売上金額]) / Sum(total<年> [売上金額])