Tableauダッシュボードのフィルターの設定方法を解説!
目次
フィルター機能の理解が重要な理由
TableauでVizを作成する際には、フィルター機能を理解しておくことが重要です。その理由は、1つは集計対象・計算対象となるデータを適切にフィルターできるようにすることと、2つ目はTableauのパフォーマンスの観点です。
例えば、都道府県ごとの商品販売データを想定してください。特定の都道府県内における売上高上位5商品をランク付けしたいとすると、特定の都道府県をフィルタリングで抽出した上で、売上高上位5位までをランク付けする必要があります。
パフォーマンスの観点で、フィルタリングの方法を考慮するべきなのは、データの読み取り方法に直結するためです。例えば、あるデータを抽出する際に、「除外」を利用することは出来るだけ避けるべきです。「除外」の実行前にTableauは全てのデータをスキャンするので、その分だけ処理が遅くなります。
ダッシュボードを発行し、実際に運用する前には数値を確認する必要があります。この時に「ダッシュボードの値が想定しているものと違う」場合、フィルターが影響しているケースが多くあります。Tableauには様々な種類のフィルターがあり、それらの優先順位が違うため、問題が発生するのです。
今回の記事でTableauのフィルタリングの基本的な機能とパフォーマンスを向上させるためのフィルタリング機能の使い方について解説しますので、重要なポイントを押さえてみてください。
Tableauにおけるフィルタリング機能
フィルター機能の概要
Tableauには6つの種類のフィルター機能があります。また6つの種類のフィルターは、以下の図の上から優先して実行されるという特徴があります。
それぞれの機能を紹介します。
「抽出フィルター」とは、ワークブックにデータを抽出する際に適用されるフィルターです。明らかに不要なデータを除外するために利用するフィルターです。ライブ接続の場合には抽出ではないので、このフィルターは適用されません。
次に適用されるフィルターは「データソースフィルター」です。データソースフィルターは、ワークブックに読み込まれたデータに対して適用されるため、すべてのシートでフィルターが適用されたデータを利用する場合に使います。
「コンテキストフィルター」とは、フィルターシェルフの中で動作する上位フィルターです。上位フィルターとは、簡単に言うと、フィルターシェルフの中で一番先に適用されるフィルターという意味です。コンテキストフィルターは、シートごとの適用になります。
「ディメンジョンフィルター」「メジャーフィルター」は、フィルターシェルフにディメンジョン、メジャーを追加した場合のフィルターです。最も利用頻度が高いものです。
最後に適用されるフィルターが「計算表フィルター」になります。計算表フィルターとは、これまでのフィルターとは異なり、データ自体をフィルタリングするのではなく、作成されたビューに対してフィルタリングを行うためのものです。例えば前年同月比の計算を行った上で、特定の年度のみ表示したい場合などに利用します。
フィルター実行の順序に影響を受けるケースの具体例
以下の表にフィルターの実行タイミングと概要を記載しています。ここではTableauのフィルターには優先して処理される順番がある例をサンプルスーパーストアのデータを使って解説します。
以下のような顧客ごとの売上と最初のオーダー日を確認できるサンプルのレポートを用意しています。
“最初のオーダー日“という計算フィールドを用意しています。
内容はmin関数を利用しています。
この状態で、”オーダー日”のフィルターを追加してみます。
フィルターを追加した後、”最初のオーダー日”の値が影響を受けて変わってしまっていることが確認できます。
これは、ディメンションフィルターが追加されたため、内部では”オーダー日”が2017年にフィルターされたデータの後、一番小さい日付を”最初のオーダー日”として計算し直している、という動きになっています。
フィルターによって優先順位がある特徴を活かして、“オーダー日”を2017年のものだけにフィルターをかけながら、”最初のオーダー日”はすべてのデータを対象として値を取ってくるようにします。
関数を以下のようにFIXEDを使ったものに変更してみます。こちらは、顧客IDごとに一番古いオーダー日を取得するという内容で、オーダー日は条件に入れていないため、すべての期間が対象となります。
意図したとおりのデータに変わっていることが確認できました。
以下の優先順位の通り、”オーダー日”を使ったディメンションフィルターよりも、”最初のオーダー日”で利用したFIXEDが優先して処理されています。
パフォーマンス向上に向けたフィルターの利用方法
フィルターシェルフの利用方法
値を全て取得する設定を避ける
フィルターシェルフにはディメンション、メジャーを入れることができます。この時フィルタリングの方法として、ワイルドカード一致や相対日付を利用すると処理の速度が早くなる場合があります。
リストやドロップダウンなどは、値を全て取得し動作するため、動作が遅くなります。加えて、表示する値の数が多ければ多いほど、値取得に時間がかかるので、一層動作が遅くなります。
除外を利用しない
データの読み込み量を減らすという観点では、除外を使わないということも重要です。除外を利用すると、Tableauは一旦全てのデータを読み込んでから除外の動作を行うため、データの読み込み量が多くなりがちです。
関連値のみの利用は最小限にする
ビューとの関連では、関連値のみを表示するという設定も、パフォーマンスの観点から申し上げると、利用しない方がよいものです。フィルタリングした上で関連した値のみ表示されるとダッシュボードの操作としては直感的に行えるメリットはあります。しかし、フィルターを行う度に、関連値のみを取得する処理が走るので、速度低下の原因にもなります。
適用ボタンを利用する
複数の項目を選択するフィルターの場合には、適用ボタンを利用することでダッシュボード利用のパフォーマンスを改善することができます。毎回、値を選択するたびに読み込みがなされると、少しの時間であってもダッシュボード利用者にとっては、使いにくいと感じます。適用ボタンを設定することのデメリットはほとんどないので、基本的には利用するようにします。
フィルターの適用先を制限する
フィルターを適用するシートが増えるほど、その分処理も多くなりますので、処理にかかる時間も増加します。基本的には、フィルターを適用するシートは必要なものだけに絞ります。
フィルターの適用先を調整するケースとしては、ダッシュボード作成中にテストで作成しているシートや数値確認のためのシートが多数ある場合が挙げられます。特に数値確認のためのシートはフィルターが連動する必要がないので、フィルターの適用範囲から除外することが多くあります。
補足として、シートが多数ある場合、どれがフィルター適用されているのかシート名のタブだけですぐに識別しにくくなる場合があります。この場合は、シート名称を工夫することで対応可能です。例えば、合計値などデータの確認のために作成したシートでは、QC_[データソース名]_[集計表名]という名称にするなど、一定の命名規則を導入すると、どのようなシートなのか名称からも判別しやすくなります。
パフォーマンス向上の確認方法
フィルタリングの方法を調整したことにより、実際にパフォーマンスが向上したかを定量的に把握することも可能です。
メニューバーから[ヘルプ] > [設定とパフォーマンス] > [パフォーマンスの記録を開始]を押下したらフィルターの変更や集計などを行います。これにより各操作の記録が作成されます。一通り測定したい操作を実行したら、[設定とパフォーマンス]より[パフォーマンスの記録を停止]を押下します。
記録を停止すると下記のような、各操作についてのパフォーマンスが記載されたワークブックが起動します。
このワークブックで最も注目するべきはEvents Sorted by Timeと記載されている部分です。実行時間が多くかかる順に、実行した操作が表示されています。この表の上位の操作ほどパフォーマンス改善の検討を進めていくことになります。
実際に実行されているクエリの内容は、Events Sorted by TimeにあるExecuting Query(クエリの実行)マークをクリックすることで、表示することが可能です。
まとめ
Tableauで集計表や指標を計算する際には、フィルターの機能を理解しておくことが必要です。フィルターの実行順序を理解することで、意図した通りの結果となるダッシュボードを開発することができます。
また、フィルターはレスポンスにも大きな影響を与えるため、内容を理解することで、パフォーマンスが高くかつ多様な表現を行えるダッシュボードを実装することができるようになります。
Tableauの基礎がわかってきたら是非フィルターの活用にも一歩踏み込んでみましょう。
<Tableau>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではTableauの導入支援のサポートも行っています。こちらもぜひお気軽にお問い合わせください。
>>Tableauについての詳細はこちら