カレンダーフィルターを実装してみる|Tableau Software Tips&Viz Advent Calendar 2014 #09 #tableau

2014.12.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2014年アドベントカレンダー『Tableau Software Tips&Viz(全部俺) Advent Calendar 2014』9日目です。Tableau Softwareに関する機能紹介、便利ネタや可視化ネタ等を毎日1本ずつ計25本、『1人(全部俺)』で担当してお届けしています。

昨日8日目の投稿ネタは『ハイライトアクション』でした。

本日9日目は『カレンダーフィルターを作ってみた』エントリとなります。フィルタリングするパーツを個別に作ってダッシュボードに適用してみる手法をご紹介しています。

目次

ビューを『日付』情報でフィルタリングさせたい!

先日投稿した以下『フィルタアクション』エントリでは、ビューの表示要素を選択する事で該当する部分のデータのみをフィルタリングさせ、関連するビューのデータ内容も絞り込む、というテクニックをご紹介しました。

それはそれとして、幾つかビューを作っていくうちに、『年/月/日といった日付に関する期間の条件でフィルタリングさせたい!』と思うようになりました。データとして存在しているものの中から任意の日付情報を指定する事で、その日付情報に合致するデータをフィルタリングする、というのがイメージとなります。今回はそんなフィルタ機能を持つビューを作ってみたいと思います。

作り方

まず用意したのはこちらのグラフ。Tableau SuperStore Sample(Japan)のデータを用いて、売り上げのヒートマップを作成しました。

calendar-filter-01

そしてフィルタ側となるカレンダーの部分を作成します。以下手順で要素を配置して行きました。

calendar-filter-02

  • 受注日を列に、表示単位は『年』。
  • 受注日を列に、表示単位は『曜日』。(※項目を右クリック、詳細→カスタムで『曜日』を選択)
    • calendar-filter-04
    • calendar-filter-05
  • 受注日を行に、表示単位は『週』。これでカレンダーの大枠が出来る。
  • フィルタにそれぞれ『年(受注日)』『月(受注日)』を配置、ひとまず任意の年月を表示させる。
  • 日(受注日)をマーク欄の[テキスト]に落とし込み、カレンダーの日付を表示。
  • マーク内の[テキスト]をクリックし、文字フォントサイズの調整と横位置の調整(真ん中寄せ)。
    • calendar-filter-03

これで粗方の枠は出来ました。表示内容的に不要と思われるヘッダー部分の情報は要素を右クリックし、[ヘッダーの表示]チェックを外す事で非表示とする事が出来ます。

  • calendar-filter-06
  • calendar-filter-07

カレンダーフィルター側のビューも完成です。

calendar-filter-08

あとはこれら要素をダッシュボードに配置し、カレンダーフィルター側のビューを[フィルターとして使用]する様に設定すれば完成です。カレンダー側の日付を指定する事で、対応するツリーマップの内容が表示されるようになります。

calendar-filter-09

Tableauサンプル

上記内容はTableau Publicのコンテンツとして公開しました。

また、上記の応用編として、年/四半期/月で絞込指定が可能な動的なカレンダーフィルターも併せて作ってみました。こちらはサンプルビューのみの公開となりますが、基本的な仕組み・考え方は(日毎指定の)カレンダーフィルターと同じです。コンテンツをダウンロードする事も可能なので、興味のある方はどういう作りをしているか確認してみてください。

おまけ

ここまでは日付情報の階層を利用してカレンダーフィルタとして連動させてみましたが、階層構造化されているデータであればこんな事も可能です。

まとめ

以上、カレンダーフィルターを自作してみたエントリでした。Tableauではこのようにアイデア次第で色々なパーツを組み合わせ、自由度の高いダッシュボードを作成する事が出来ます。より効果的な・使い易い・分かり易いグラフやダッシュボードを作って行ける様に柔軟な発想を養って行きたいところですね。

では、明日もお楽しみに!