Tableauで異なるデータソースをまたいでフィルターをかけたいとき、恐らく皆さんはパラメーターを使用すると思いますが、Tableauのパラメーターでは単一の値しか扱うことはできません。複数選択したい場合に困ってしまうと思います。
ただし、計算式と簡単な正規表現を利用することで、パラメーターでも複数選択に近いことを行うことが可能です。今回はサンプルスーパーストアのデータを用いてそのやり方を説明します。
なお、複数選択可能なダッシュボードは以下にパブリッシュしています。
複数選択ダッシュボード | Tableau Public
パラメーターで複数選択を実現する4ステップ
ここでは例として「ECサイトの売り上げを地域別に見たい場合」を取り上げます。地域にフィルターをかけて数値をみる際に、複数選択をしたい場合です。
ステップ1: パラメーター・計算式の作成
まず、下記のようにパラメーターと計算式を作成します。
上記の計算では、「地域選択」の値が「地域」と一致している場合にTrueを、もしくは「地域選択」が「すべて」の場合にTrueを返します。
ステップ2: ワークシートの作成
2つのシートを用意します。
- 地域選択用のシート
- 売上推移のグラフ
ステップ3: ダッシュボードの作成
作成したワークシートでダッシュボードを構成します。
ステップ4: パラメーターアクションの設定
最後に、パラメータアクションを設定します。
この時「集計」を「連結」に、「選択項目をクリアした結果」を「すべて」にします。「ターゲットパラメーター」は「地域選択」を選択し、「ソースフィールド」は「地域」を選択します。
これで地域選択シートの地域名をクリックしたものでフィルターがかけられるようになりました。
作成したダッシュボードの挙動
では、作成したダッシュボードの動きを見ていきます。
ダッシュボードではクリックした項目でフィルターがかかっており、選択を解除すると地域のすべての値が表示されています。この時にctrlキーを押しながら地域を複数選択することで、複数のフィルターがかけられるようになっています。
各種計算の解説
今回の実装でカギになるのが、パラメータアクションの「連結」機能です。ダッシュボード上で地域を複数選択することでパラメーターには単一の値ではなく、複数の値が ”, ”(カンマ)区切りで入ります。
たとえば、下記のようにパラメーターの値をみると「九州, 四国」というふうに2つの地域が入っています。
この「九州, 四国」を計算式の「選択地域の売上」ではreplace関数を用いて「九州|四国」の形式に変換しています(「カンマ区切り」ではなく「カンマ+空白(半角)」を ”|” に置換しています)。
「九州|四国」にすればREGEXP_MATCH関数でカテゴリにマッチする値がTrueとなるので、「九州と四国」がダッシュボード上で表示されるという仕組みです。
まとめ
この記事ではパラメーターで複数の値を選択する方法を紹介しました。
パラメータアクションの「連結」を使用して値を複数入れることができれば、パラメーターでも複数の値を取り扱うことが可能になります。パラメーターはデータソースを横断してフィルターをかけることも可能なのでぜひ実践してみてください。