こんにちは!駆け出し分析官のY.Tです。
今回はTableauのダッシュボード内でデータ自体をフィルターせず、動的に表示・非表示を切り替える方法をまとめてみました。
なんで「フィルターしない表示切り替え」が必要??
フィルターをしない表示切り替えを必要とする場面は、様々なシーンが考えられます。例としては、下記の2つがあげられます。
- ディメンション・メジャーフィルターによって表計算が崩れるのを避けたいとき
- 合計や集計を正しく表示したいとき
表計算フィルターや、LODを使用することで記載している2つの内容は回避可能ですが、今回は回避方法の1つとして、「セット」を使用した方法をご紹介します。
セットを使用することで、データをフィルターで削除せずに保持したまま、表示・非表示を切り替えることが可能になります。これにより、表計算や合計が崩れず、フィルターしたかのように見せることが可能です。
ちなみに私は、「表計算を崩さずに、フィルターのような動きを実現したい!」という悩みから、今回の方法にたどり着きました。
使用するTableauの機能:セットとは?
セットって何ぞや?となる方のみご覧ください。
Tableauでのセットの機能は一言でいうと「データを条件に応じてINとOUTに分類する仕組み」です。
サンプルスーパーストア内のカテゴリでイメージするとこのような形です。


セットでのIN/OUTの分類は大きく2つのパターンがあります。
- 固定セット:手動で選択してIN/OUTを分類する
- 動的セット:条件や計算によってIN/OUTが自動で変わる
固定セットは、ビュー内で選択しセットを組むことができます。一方、動的セットは、データペインから作成を選択→「条件」などの設定によって作成することができます。
本題:フィルターしない表示切り替えの実装
ここからは本題である、「フィルターをせずに表示切替を実装する方法」をご紹介します。
おなじみのサンプルスーパーストアのデータで実装していきます。実装例として、顧客ごとのカテゴリ別売上額を表形式で表示しました。
Tableauの分析機能を使用し、行方向に総計したものを表示しています。

今回は、カテゴリをフィルターせずに表示非表示を切り替えます。カテゴリに対してセットを作成。
作成したセットを、カテゴリが入っている列に加えます。

後は、ビュー内でOUTを非表示にすることで、セットで選択したカテゴリだけが表示されるようにできます。このようにセットを使用して、表示・非表示を切り替える大きなメリットとしては、元データをフィルターせずに保持できる点です。
今回の例であれば、顧客ごとの総計はカテゴリの表示・非表示に関わらず、全カテゴリの合計値になります。しかし、仮にフィルターでカテゴリを非表示にした場合、そのカテゴリのデータ自体が除去されるため、顧客ごとの総計は表示されているカテゴリの合計値になってしまいます。
セットを使用した場合
フィルターを使用した場合
(今回の例であればLODを使用して実装することも可能です)
さらなる活用法
セットをパラメーターで制御することも可能です。
セットの編集から「条件」タブを開き、式指定にてパラメータを指定することで、一致するものを表示対象とすることも可能です。
また、複数選択もTableauに搭載されている正規表現関数(REGEXP_MATCHなど)を使用することで、任意の複数指定が可能な選択ボックスも作成できます。

さいごに
いかがでしょうか。セットを活用しデータの表示非表示をうまくコントロールすることで、フィルターとは違った形でビューに表示される値や項目を調整することができます。このように、Tableau側で工夫することで、データソース側でできなかった処理などを一部担うことも可能ではないかと思われます。今回のTipsがお悩みの1つの解決手段となれば幸いです!