ドリルダウンとは?QlikViewやQlik Senseでの実現方法は?

ドリルダウンとは?QlikViewやQlik Senseでの実現方法は?

Pocket

ここ数回上級者向けの記事がつづきましたので、今回ははじめての方でも簡単に使える「ドリルダウン」という便利な機能をご紹介します。
ドリルダウンはQlikViewやQlik Senseだけでなく、ほかのBIツールなどにもある機能です。使い方も簡単ですのでぜひ使ってみてください。

ドリルダウンとは

ドリルダウンには、もともと”掘り下げる”という意味があります。つまりデータ分析で言うところのドリルダウンとは、概要から詳細へデータを掘り下げて分析していく手法のことを指します。

“概要から詳細へ”ということですので、日付(年→月→日)や地理(国→都道府県→市区町村)など、親子関係を持つデータを分析する場合にとくに有用です。
親子関係を持つというのは、階層を持つと言い換えられると思いますが、事実QlikViewのヘルプでは、ドリルダウン機能は階層グループという名前で紹介されています。
階層グループ (ドリルダウン) ‒ QlikView

親子関係を持つデータには、たとえば以下のようなものが考えられます。
日付:年→月→日
地理:国→都道府県→市区町村
組織:事業部→部→課
商品など:大分類→中分類→小分類
このような項目は業種、業態を問わずよく使われる項目で、かつ親子関係が誰の目にも明らかですので、親(概要)から子(詳細)へ簡単に視点を切り替えて分析できると、使い勝手がよいということです。

ドリルダウンは”データを掘り下げて分析していく”ことですので、専門的なツールがなくても、たとえばExcelなどでも使える手法です。
そもそもドリルダウンという名前を知らない方も、ドリルダウンにあたる操作を日常的におこなっていると思います。

Excelでのドリルダウン

たとえば、Excelではピボットテーブルを使って以下のようにドリルダウンを使用できます。
以下はExcelのピボットテーブルの例です。ここでは行ラベルに「地区名」と「都道府県名」を、値に「売上金額」の合計値を表示しています。

「関東」の左側にある「+」ボタンをクリックすると、関東地区の中にある7都県が表示されます。

また、Excelではあらかじめ設定してなかった軸(行ラベル)を、ダブルクリックで追加できます。
たとえば、「茨城県」の値をダブルクリックして、表示された項目の一覧から「年」を選択します。

茨城県の年ごとの集計が表示されました。

非常に単純なことですが、これもドリルダウンです。
“データを掘り下げて分析する”というのが、なにを指しているのかお分かりいただけたかと思います。

繰り返しになりますが、ドリルダウンは地区→都道府県のように親子関係を持つデータを分析する際に便利な機能です。
しかし、親子関係を持つというのは必須の条件ではなく、上で試した都道府県→年のように、親子関係を持たないデータでドリルダウンを使用することもあります。

可視化の観点から見たドリルダウンの利点

ドリルダウンの利点をご理解いただくには、もっと単純に見た目の話をした方が分かりやすいかもしれません。

たとえば、以下のような地区別の棒グラフがあったとします。
ここで地区を1つ選択してみます。

当然、棒を1本表示するだけのあまり意味のないグラフになってしまいます。右側にぽっかり空いたスペースが無駄ですよね。

かと言って、都道府県をすべて並べてしまうと、サイズが大きすぎて見にくくなってしまいます。

理想的な動作は、以下のようなものではないでしょうか。

地区を1つ選択すると…

自動的に都道府県別のグラフに切り替わります。当然、関東を選択すれば関東地区の中にある7都県のみが表示されます。

これがQlikViewやQlik Senseにおけるドリルダウンの動作です。
QlikViewやQlik Senseにおけるドリルダウンとは、値の選択に応じてグラフの軸項目を自動的に切り替えてくれる機能というです。


Qlik Senseのドリルダウン

それではここからは、QlikViewやQlik Senseのドリルダウンについて見ていきましょう。
QlikViewやQlik Senseでドリルダウンを使うには、チャートを作成する前にドリルダウンのための簡単な設定が必要です。具体的には、親子関係を持つ項目をグループ化する設定をおこないます。

まずはQlik Senseです。
サンプルのデータを用意しましたので、ぜひおなじように操作してみてください。
以下のExcelファイルをダウンロードしてください。
uriage-jisseki.xlsx

Qlik Senseで新規にアプリを作成します。

アプリの名前はここでは、「ドリルダウン」としておきます。

Excelファイルからデータを取り込んでください。
ExcelファイルをQlik Senseの画面にドラッグ&ドロップするか、「データの追加」をクリックしてExcelファイルを選択してください。

データは1シート目の「売上」のデータを、そのまま取り込むだけで構いません。


それでは、ドリルダウンの設定をしていきましょう。
Qlik Senseでドリルダウンを使用するには、マスターアイテムにドリルダウン用の軸を追加します。
※マスターアイテムとは、よく使用するチャートや数式をあらかじめ登録しておく機能です。マスターアイテムに登録したチャートや数式は、アプリの中で簡単に再利用できます。Qlik Senseでドリルダウンを使用するには、ドリルダウン用の軸をマスターアイテムとして登録します。

画面左側の「アセット」パネルから「マスターアイテム」を選択します。
「軸」を選択して「新規作成」をクリックします。

「軸の新規作成」画面でドリルダウン用の軸を作成します。
ここでは、「地区名」と「都道府県名」から地区のグループを作成します。

まず画面上部で「ドリルダウン」を選択します。
項目の一覧から「地区名」と「都道府県名」を選択します。
選択した項目が画面右上の「項目」に追加されていきます。
このとき項目の並び順に注意してください。項目の並び順がドリルダウンの親子関係になりますので、もし順番が違う場合はドラッグ&ドロップで順番を入れ替えてください。

「名前」にこのグループの名前を指定します。ここでは「地区グループ」と指定しておきます。
名前を指定したら「軸を追加」ボタンをクリックし、最後に「完了」ボタンをクリックしてください。
「軸を追加」ボタンをクリックせずに「完了」ボタンをクリックすると、グループが作成されないまま、前の画面に戻ってしまうので注意しましょう。(事前に警告が出ます。)

地区グループが作成できました。あとはこの軸を使って、普段どおりチャートを作成するだけです。

画面左側の「アセット」パネルから「チャート」を選択し、「棒チャート」をドラッグ&ドロップで追加します。

「軸を追加」をクリックして、先ほど作成した「地区グループ」を選択してください。

「メジャーを追加」をクリックして、「売上金額」を選択し「Sum([売上金額])」を選択します。

最後にグラフのサイズを調節して完成です。

画面上部の「完了」ボタンをクリックして、動作確認してみましょう。
棒グラフから「関東」を選択してみてください。

軸が都道府県に切り替わります。X軸のタイトルにも「都道府県名」と追加されました。

軸をもとに戻すには、単純に絞り込みを解除するか、グラフのX軸にある「地区名」をクリックします。
この操作を、ドリルダウンに対してドリルアップと呼びます。


以上ここまでで、ドリルダウンの動作が確認できました。
このように、ドリルダウンでは値を選択するとグラフの軸が自動的に切り替わります。より正確に言うと、以下のようになります。
軸の切り替えは、親の項目の値が1つに絞り込まれたときに発生します。

ではそのことを確認してみましょう。
画面上部の「編集」ボタンをクリックして、アプリの編集画面に戻ります。
画面左側の「アセット」パネルから「項目」を選択し、「地区名」をドラッグ&ドロップで追加します。

画面上部の「完了」ボタンをクリックして、動作確認してみましょう。
「地区名」のフィルターパネルで、値を選択してみてください。
値を1つ選択すると、ドリルダウンが発生し軸が「都道府県名」に切り替わります。

しかし、値を2つ選択するとドリルダウンは発生せず、軸は「地区名」のままです。


このように値が1つに絞り込まれたかどうかが、ドリルダウンの発生条件となります。
ドリルダウンを設定したグラフが直接操作されたかどうかは関係ありません。ここでご覧いただいたように、フィルターパネルで値が絞り込まれた場合も、またはほかのグラフで値が絞り込まれた場合も、親の項目の値が1つに絞り込まれたら、軸の切り替えが発生します。


QlikViewのドリルダウン

それでは、こんどはQlikViewのドリルダウンについて見ていきましょう。
考え方はQlik Senseとおなじですので、簡単に説明をしていきます。

ドキュメントを新規に作成し、「ロードスクリプトの編集」画面を開きます。

カーソルをスクリプトの最下部にあわせて、「テーブルファイル」ボタンをクリックし、データを取り込みます。

リロードを実行してデータを取り込んでください。
ドキュメントは任意の名前で保存していただいて構いません。ここでは「ドリルダウン」という名前にしています。

それでは、ここからはQlikViewのドリルダウンについて説明していきます。
Qlik Senseの軸に相当するものは、QlikViewでは「ドキュメントプロパティ」の「グループ」に当たります。

「ドキュメントプロパティ」画面で「グループ」タブを開き、「新規作成」ボタンをクリックします。

「グループの設定」画面で、「ドリルダウングループ」を選択します。もう一つのサイクリックグループについては後述いたします。
グループ名を入力して、項目一覧から「地区名」と「都道府県名」を選択し、最後に「OK」ボタンをクリックします。

ドリルダウングループが作成できました。
「ドキュメントプロパティ」画面は「OK」ボタンで閉じてください。

あとは、普段どおりグラフを作成するだけです。

軸の選択画面で、先ほど作成した「地区グループ」を選択します。

数式を設定して完成です。

地区からなにか値を1つ選択すると、都道府県の表示に切り替わります。

もとに戻す操作(ドリルアップ)も、Qlik Senseとほぼ同様です。
「クリア」ボタンなどから選択を解除するか、グラフの右下にある上矢印ボタンをクリックしてください。



サイクリックグループ(QlikView)と代替軸(Qlik Sense)

先ほどQlikViewでドリルダウンを設定する際、「ドリルダウングループ」の隣に「サイクリックグループ」という選択肢がありました。
サイクリックグループもドリルダウングループとおなじように、複数の項目をグループ化する機能なのですが、ドリルダウングループと違い、親子関係のない項目をグループ化するために使用されます。

たとえば、下図では「地区名」「大分類名」「年」の3つの項目をサイクリックグループとして登録しています。

下図のようにグラフ右下のアイコンから、自由に軸を変更できます。

このように、サイクリックグループは単純に軸を手動で変更する機能です。
ドリルダウングループと違い、値の絞り込みとは連動せず、手動で軸を切り替える機能になります。

Qlik Senseにはサイクリックグループの機能はありませんが、チャートの設定にある「代替軸」を使えばおなじことができます。

下図では軸に「地区名」を設定し、代替軸に「大分類名」と「年」を設定しています。

下図のように軸を変更できます。
編集画面に移動せずに軸を切り替えられますので、サイクリックグループとおなじように利用できます。
サーバー版であるQlik Sense Enterpriseについて言えば、編集権限のないユーザーの方でも軸を切り替えられるということになります。当然、ユーザーが軸を変更してもそのユーザーの画面上の表示が変わるだけで、アプリ(qvfファイル)自体に変更は加えられません。


ユーザーインターフェース側の機能

ここまででドリルダウンについてご覧いただきましたが、当初の目的に立ち返り”データを掘り下げて分析する”ということで言えば、ドリルダウンの機能は使わずにグラフの見せ方を工夫するという考え方もあるはずです。
ここでは、いくつか例をご紹介します。

ピボットテーブルの折り畳み

Excelのピボットテーブルとおなじように、QlikViewやQlik Senseのピボットテーブルでもデータの折り畳みができます。
なお、Qlik Senseではデータの折り畳みは初期設定では無効になっています。
有効にするには、画面右側の「プロパティ」パネルで「プレゼンテーション」→「完全に展開」をオフにしてください。

Qlik Senseのピボットテーブル(完全に展開をオフ)

Qlik Senseのピボットテーブル(完全に展開をオン)

QlikViewのピボットテーブル


ツリーマップ(Qlik Sense)とブロックチャート(QlikView)

Qlik Senseのツリーマップと、QlikViewのブロックチャートは、名前は違いますが機能的にはおなじものです。
どちらも値の大小を四角形の大きさであらわすグラフで、複数の軸を入れ子にできるのが特長です。

Qlik Senseのツリーマップ

QlikViewのブロックチャート


タイムアウェアチャート(Qlik Senseのみ)

タイムアウェアチャートは、Qlik Senseの折れ線グラフ特有の機能です。この機能は日付の項目を軸に設定すると、自動的にドリルダウンを設定したかのようにラベルを表示してくれます。

下図はタイムアウェアチャートの例です。
軸には日付(年月日)の項目を設定しただけですが、X軸の表示は年レベルの表示になっています。
2012年を選択すると…

月レベルの表示に切り替わります。1月を選択すると…

日レベルの表示に切り替わります。

無効にしたい場合は、画面右側の「プロパティ」パネルで「スタイル」→「X軸」→「連続」をオフにしてください。

もし、今回のデータを使ってタイムアウェアチャートを試してみたい方は、一度データマネージャーを開いてデータを取り込み直してください。
※データを取り込みなおす理由は、この記事の最後にまとめました。

日付項目の左側に、カレンダーのアイコンが表示されていれば問題ありません。



ドリルダウンの落とし穴

うまいこと言いたかった訳ではなく、ドリルダウンも万能ではないというお話です。
QlikViewやQlik Senseでドリルダウンを使う上で、ぜひ気にかけていただきたい内容です。

当たり前のことではあるのですが、ドリルダウンでは親の異なる子同士を比較することはできません。
今回の例で言うと、関東の詳細を見ながら、近畿の詳細を見るといったことはできません。

たとえば、以下の2つのグラフを見て、東京の値と京都の値、どちらが大きいかすぐに分かるでしょうか。
この例は、目盛をよく見れば東京の値の方が大きいことが分かるのですが、画像を並べて見ても分かりにくいので、実際に値を選択しながら見比べるのはさらに難しくなります。

これに対して、単純に都道府県をランキング形式で表示した以下の棒グラフはどうでしょうか。
東京の方が京都より値が大きいこと、しかしながら差は僅差であること、また兵庫ともほぼおなじ値であること、新潟とは若干の開きがあることなどが分かります。
今回の例で言えば、このグラフの方がより多くの情報を得られると言えるでしょう。

以下はQlikViewヘルプ「項目グループ」のページからの引用です。
項目グループ ‒ QlikView

QlikView と OLAP ツールなどのその他の多くのデータベース ビューアーの主な違いとして、QlikView では入力データの階層を事前定義する必要がありません。QlikView 固有の内部ロジックでは、完全な軸として任意の項目に任意の順序で自由にアクセスできます。ほとんどの目的において、この自由度はきわめて強力です。

ただし、事前定義された階層は、より効率よくデータを表示するために役立つ場合があります。このため、QlikView には、項目のグループを定義する機能が用意されています。グループは、階層 (ドリルダウン) または非階層 (サイクリック) で作成できます。

以下はわたしなりの解釈です。
QlikViewやQlik Senseの連想技術は、ある値に紐づく値を高速に取り出す技術です。そのため、ドリルダウンのように項目の親子関係を事前に定義しなくても、ユーザーが自由に明細レベルのデータにアクセスできます。ヘルプでは、この自由度の高さは非常に強力であると言っています。


最後に…

今回はドリルダウンについてご覧いただきましたが、いかがだったでしょうか。
最後にお話ししたとおりドリルダウンも万能ではありませんが、便利な機能であることに変わりはありません。
QlikViewやQlik Senseの良さである”分析における自由度の高さ”を活かしつつ、ドリルダウンも使いこなしていただけたら幸いです。


タイムアウェアチャートを使用する前に、データを取り込みなおした理由

Qlik Senseのデータ取り込み機能であるデータマネージャーでは、日付項目を認識して年、月、日などの項目を自動で追加してくれます。
タイムアウェアチャートはこの機能と連動して、年、月、日などの表示をおこなっています。
そのため、もしデータの取り込みをおこなう際に、データマネージャーを一度も開かずにデータを取り込んでいた場合、年、月、日などの項目が追加されていないため、タイムアウェアチャートの表示が上の例と違ったものになります。
たとえば、月の項目がないため、月の代わりに月の初日が表示されます。たとえば2017年1月は2017/01/01と表示されます。

以下の画面で「データの準備」をクリックせずに「データをロードして終了」ボタンをクリックした場合、データマネージャーを一度も開いていないため、年、月、日などの項目は追加されません。

すこし分かりにくい動作ですが、手元の環境でためしたところ、このような動作となりましたので注意してください。
なお今回使用したのは、Qlik Sense Desktop 3.2 SR2です。バージョンによって動作に違いがありましたらご了承ください。