NEWSニュース&ブログ

【Tableau】いろいろなダッシュボードを作成してみる – その①

この記事は最終更新から1年以上経過しています。内容が古くなっている可能性があります。

投稿日:2023/4/18

はじめに

皆さん初めまして。
システムサポート の山本 と申します。

普段はDBのアレコレだったり、BIツールを使ったアレコレなんかの業務をしております。

今回から、実際に業務で使用したTableauの小技をご紹介します。

こんな時、ありますよね

・毎日の売上実績が格納されている表から、特定の日にちや期間のみ表示させたい!
・数年分格納されている表を基にするので、毎度毎度全件読み込んで絞り込むのはヤダ(´・д・`)
・前日分を参照することが多いので、帳票を開いた際の初期値は昨日分のみの実績だけにしたい!

そんな表を作ってみます。

作成まで

(以降、すべてTableauにデフォルトで入っている「サンプル スーパーストア」のデータを使用しています)

↓のように、オーダーIDや商品、顧客名、金額のデータが入っている表を作成したとしましょう。

画面右のスクロールバーのちいちゃさからも分かるように、そこそこ件数があります。
さすがに全体から見たいレコードを探すのは骨が折れるので、日付でフィルターしてみましょう。

「オーダー日」をフィルターにドラッグ&ドロップし、「日付の範囲」→「相対日付」を選択します。



ダッシュボードに戻り、フィルターをみよーんと持ってくると、
↓のように昨日日付で絞ったデータを見ることができます。

ただこのフィルター、何となく直感的に日付範囲の指定がしづらい感じがします。
もっとこう、カレンダーっぽいものが欲しいですよね。欲しいという事にしてください。


そんな時は計算フィールド+パラメータを駆使すると解決できます。

まずは昨日日付を常に参照するような計算フィールド「昨日の日付」を作成します。
コレを利用して、次は範囲指定の開始日となるパラメータ「From(日付)」と、
範囲指定の終了日となる「To(日付)」を作ります。

キモは、「ワークブックが開いているときの値」をどちらも「昨日の日付」に設定することです。
これにより、Tableauワークブックを開いた時は常に「昨日~昨日」、
すなわち昨日の1日分だけに絞られた状態とすることができます。

結果

この2つのパラメータを先ほどのダッシュボードのフィルターの代わりに組み込むと、
カレンダーっぽく日付指定ができるようになりました。ワーイ。

ほんとうに伝えたかったこと

さて、今回はパラメータを駆使した日付指定の方法をご紹介したのですが、
このような場合にパラメータを利用することの真骨頂としては、
SQLを利用してデータを抽出する際、パラメータをクエリに組み込める、という点にあります。

例えば何十年分もデータが詰まっているテーブルを引っ張ってきて、数年分参照することもあれば、
昨日日付のデータだけを参照したい、といった要件もあるかと思います。

いざSQLを使ってデータを取得しようと思った際、
「WHERE句に何を書けば・・・」と涙目になってしまうかもしれません。
結果的に全件取得するしかなく、Tableauの重さに涙を流すこと請け合いです。

こんな時、先ほどのパラメータを使うことで、「毎回全件取得→日付範囲を指定」ではなく、
「あらかじめ指定した範囲に絞った状態でSELECT文を実行する」ということができます。



WHERE句の内容を動的に変えることができる、ということですね。

おわりに

 

こんな感じで、これからTableauのことをチョロチョロと書いていければと思いますので、
何卒よろしくお願いします。

山本 康平(1994年生まれ/2017年入社/おとめ座)

株式会社システムサポート フューチャーイノベーション事業本部 ソリューションサービス事業部所属。
DBチームとしてクラウド×DBのアレコレに従事。
地理と歴史と路線図と横浜DeNAベイスターズが大好き。
好きな国旗はセントルシア。