フィルターアクションで予期せぬシート移動を防ぐには[DATA Saber挑戦 #Week9]
DATA Saber BridgeプロジェクトにApprenticeとして参加しています。
週一note更新目指します。
はじめに
この間のMakeoverライブにて、フィルターアクションが何度も取り上げられていたので、TableauでのViz作成時にフィルターアクションを使う場合に注意しておくべき点について記載していきます。
このページで伝えたいこと
Tableauのフィルターアクションは
という挙動をします。
つまり、フィルターアクションを想定通り動かすためにはアクションの追加設定やアクション名の変更(連番付与)をする必要があります。
注意事項
このページではフィルターアクションの具体的な設定方法について解説しません。Tableauの公式サイトなどをご参照ください。
使用環境は Tableau Desktop Public Edition 2022.4.0 です。
サンプルダッシュボードについて
今回はフィルターアクションで別シートのデータを絞るようなサンプルダッシュボードを作成しました。
[CASE1]で利用
[CASE2]で利用
エントランスページである「前提条件選択」ダッシュボードでStep.1~Step.3の項目をそれぞれ選択した後に、売上ダッシュボード・地域別ダッシュボードをフィルターされた状態で初期表示させています。
メインダッシュボードはある程度フィルターされた状態で表示させることができるため、パフォーマンス改善のためにこのようなダッシュボード構成になることもあると思います。
[CASE1] 意図せず別シートに遷移してしまう
フィルターアクションの設定失敗例①
ただ、何も考えずフィルターアクションを1つだけ設定すると、フィルターアクションを動作させるだけで、すぐ別シートに移動してしまいます。
なぜ想定通りの動作ができなかったのでしょうか?
ここには、「フィルターアクションでソースシート(つまりフィルター元ダッシュボード)に無いワークシートをターゲットシートにすると、フィルター処理だけでなくターゲットシートに遷移する処理も行われる」という仕様が隠れています。
以下のナレッジベースにもこの仕様の回避方法は記載されています。
しかし、ターゲットシート内のワークシートをソースシート側にも(見えないように)追加するという方法で、あまりスマートではありません。
(参考)How To Avoid Moving To Another Sheet When Using A Filter Action | kb.tableau.com
失敗例①の回避方法(一例)
「ソースシートに無いワークシートをターゲットシートにすると、ターゲットシートに遷移する処理も行われる」ということは、「同一ダッシュボード内のフィルターアクションを同時に設定すればシート遷移は発生しなくなる」ということになりそうです。
このように設定することで、「売上ダッシュボード」へのシート遷移が発生しなくなります。
[CASE2] フィルターの実行順を制御できない
フィルターアクションの設定失敗例②
先ほどまでのワークブック内に新しくダッシュボードを作成しました。そのため、エントランスページである「前提条件選択」ダッシュボードにナビゲーションボタンを追加し、同じ内容のフィルターアクションを新規追加ダッシュボード向けにも設定しました。
先ほどの失敗例①の回避方法を設定していれば、何事もなく動くこともあるのですが、失敗例①の症状がたまに再発することがあります。
上記のようにシート遷移してしまった理由は、フィルターアクションの順番を制御できていないからです。
フィルターアクションは、作成順ではなく名前順で実行されます。
基本的に
の順番となるので、「フィルター2…」という名前のアクションよりも後に「新規追加…」という名前のアクションが実行されてしまったことになります。
失敗例②の回避方法(一例)
名前順にアクション実行されるのであれば、あらかじめ名前の先頭に番号を振ることで容易に順番制御できます。
おわりに
フィルターアクションはインタラクティブなVizを作成するために必須と言っても良い機能です。
フィルターアクションを使いこなせれば表現の幅が増えるので、さらに活用できるようにしていきたいですね。