![見出し画像](https://assets.st-note.com/production/uploads/images/95683928/rectangle_large_type_2_fcd086616f72cf8f51fa8a99d230fa65.png?width=800)
フィルターアクションで予期せぬシート移動を防ぐには[DATA Saber挑戦 #Week9]
DATA Saber BridgeプロジェクトにApprenticeとして参加しています。
週一note更新目指します。
はじめに
この間のMakeoverライブにて、フィルターアクションが何度も取り上げられていたので、TableauでのViz作成時にフィルターアクションを使う場合に注意しておくべき点について記載していきます。
このページで伝えたいこと
Tableauのフィルターアクションは
フィルターアクションでソースシートに無いワークシートをターゲットにした場合、勝手にターゲットシートに遷移する
同時にフィルターアクションが作動した場合、
・フィルターアクションは名前順(降順)に実行される
・最後に実行されたフィルターアクションのターゲットシートに遷移する
という挙動をします。
つまり、フィルターアクションを想定通り動かすためにはアクションの追加設定やアクション名の変更(連番付与)をする必要があります。
注意事項
このページではフィルターアクションの具体的な設定方法について解説しません。Tableauの公式サイトなどをご参照ください。
使用環境は Tableau Desktop Public Edition 2022.4.0 です。
サンプルダッシュボードについて
今回はフィルターアクションで別シートのデータを絞るようなサンプルダッシュボードを作成しました。
[CASE1]で利用
![](https://assets.st-note.com/img/1673731954522-6Q4DRsP5Ec.png?width=800)
![](https://assets.st-note.com/img/1673732013422-FzTQipLv9d.png?width=800)
![](https://assets.st-note.com/production/uploads/images/95662150/picture_pc_7726195e1cee3546f1cbc36bdf4d098e.gif?width=800)
フィルターされた状態でグラフが表示される。
ちなみに「GO!!!」ボタンはナビゲーションオブジェクト。
[CASE2]で利用
![](https://assets.st-note.com/img/1673752367231-Y9McxSHqwB.png?width=800)
![](https://assets.st-note.com/img/1673752500151-K1DPvn4xyU.png?width=800)
エントランスページである「前提条件選択」ダッシュボードでStep.1~Step.3の項目をそれぞれ選択した後に、売上ダッシュボード・地域別ダッシュボードをフィルターされた状態で初期表示させています。
メインダッシュボードはある程度フィルターされた状態で表示させることができるため、パフォーマンス改善のためにこのようなダッシュボード構成になることもあると思います。
[CASE1] 意図せず別シートに遷移してしまう
フィルターアクションの設定失敗例①
ただ、何も考えずフィルターアクションを1つだけ設定すると、フィルターアクションを動作させるだけで、すぐ別シートに移動してしまいます。
![](https://assets.st-note.com/img/1673733871027-SdOgH8BJQ8.png)
![](https://assets.st-note.com/img/1673733907688-GTuACkygO5.png?width=800)
これで設定OK! と思いきや…
![](https://assets.st-note.com/production/uploads/images/95662376/picture_pc_c5dc17c783b128a1b5cf94215e22abd5.gif?width=800)
これでは顧客区分と出荷モードのフィルターを選択できない。
なぜ想定通りの動作ができなかったのでしょうか?
ここには、「フィルターアクションでソースシート(つまりフィルター元ダッシュボード)に無いワークシートをターゲットシートにすると、フィルター処理だけでなくターゲットシートに遷移する処理も行われる」という仕様が隠れています。
以下のナレッジベースにもこの仕様の回避方法は記載されています。
しかし、ターゲットシート内のワークシートをソースシート側にも(見えないように)追加するという方法で、あまりスマートではありません。
(参考)How To Avoid Moving To Another Sheet When Using A Filter Action | kb.tableau.com
失敗例①の回避方法(一例)
「ソースシートに無いワークシートをターゲットシートにすると、ターゲットシートに遷移する処理も行われる」ということは、「同一ダッシュボード内のフィルターアクションを同時に設定すればシート遷移は発生しなくなる」ということになりそうです。
![](https://assets.st-note.com/img/1673739576820-IPNKotQhCe.png?width=800)
![](https://assets.st-note.com/img/1673739613945-Z7idoMzW7g.png?width=800)
ターゲットシートにすべてのダッシュボード内シートを選んでおけば、
フィルター選択時に該当0件になった項目は自動で消えてくれる。
![](https://assets.st-note.com/production/uploads/images/95672786/picture_pc_f677d5121b9867441a82749529a2f3ff.gif?width=800)
カテゴリを選択したら、それに応じてサブカテゴリの表示が増減する。
このように設定することで、「売上ダッシュボード」へのシート遷移が発生しなくなります。
[CASE2] フィルターの実行順を制御できない
フィルターアクションの設定失敗例②
先ほどまでのワークブック内に新しくダッシュボードを作成しました。そのため、エントランスページである「前提条件選択」ダッシュボードにナビゲーションボタンを追加し、同じ内容のフィルターアクションを新規追加ダッシュボード向けにも設定しました。
先ほどの失敗例①の回避方法を設定していれば、何事もなく動くこともあるのですが、失敗例①の症状がたまに再発することがあります。
![](https://assets.st-note.com/img/1673740901344-bzbBq1ma8Z.png?width=800)
![](https://assets.st-note.com/img/1673740908492-9wcVpQ1Uaa.png?width=800)
![](https://assets.st-note.com/production/uploads/images/95667257/picture_pc_7cf5e44775535d5611b11b2d7e38b190.gif?width=800)
上記のようにシート遷移してしまった理由は、フィルターアクションの順番を制御できていないからです。
フィルターアクションは、作成順ではなく名前順で実行されます。
基本的に
半角数字(0~9) ⇒ 半角英大文字(A~Z) ⇒ 半角英小文字(a~z) ⇒ 全角かな ⇒ 全角カナ ⇒ 全角漢字 ⇒ 全角数字 ⇒ 全角英大文字 ⇒ 全角英小文字
の順番となるので、「フィルター2…」という名前のアクションよりも後に「新規追加…」という名前のアクションが実行されてしまったことになります。
![](https://assets.st-note.com/img/1673740901344-bzbBq1ma8Z.png?width=800)
この表示順ではなく「フィルター1…」⇒「フィルター2…」⇒「新規追加…」という順番でアクションが実行されたことになる。
![](https://assets.st-note.com/img/1673750597664-dYIhDm5lIG.png?width=800)
同一シート遷移用のアクションを消してみると、
地域別ダッシュボードに遷移した。
失敗例②の回避方法(一例)
名前順にアクション実行されるのであれば、あらかじめ名前の先頭に番号を振ることで容易に順番制御できます。
![](https://assets.st-note.com/img/1673750457153-6OWDx0srUy.png?width=800)
表示順がバラバラだが、特に問題はない。
![](https://assets.st-note.com/production/uploads/images/95677932/picture_pc_370f7c7a02fe2816ee4cd464a8f99c44.gif?width=800)
シート移動してしまうことはなくなった。
おわりに
フィルターアクションはインタラクティブなVizを作成するために必須と言っても良い機能です。
フィルターアクションを使いこなせれば表現の幅が増えるので、さらに活用できるようにしていきたいですね。
この記事が気に入ったらサポートをしてみませんか?