[Tableau]「セット値の変更」アクションでカテゴリを切り替える


今回は「セット値の変更」アクションを使って、動的に集計を切り替えるテクニックをご紹介したいと思います。

(わりと基礎的な記事ばっかり書いてたので、たまにはちょっと応用的な内容も書いてみたくなりました)

サンプルのダッシュボードはこちら

はじめに

今回やりたいのは↓です。

「あるディメンション別の集計を可視化しつつ、そのディメンションを一部変更したらどうなるかをシミュレーションする」

…と言ってもパッとイメージ湧かないと思うので、スーパーストアのサンプルデータを使って次のようなシチュエーションを想定してVizを作りたいと思います。

  • メーカーとの契約打ち切りを検討している
  • メーカーとの契約を打ち切った場合、カテゴリ別の売上がどう変化するのかをシミュレーションしたい
  • ダッシュボードでポチポチと切り替えられるようにしたい

…細かい設定へのツッコミはなしでお願いしますね。

やってみよう!

0. 大まかな方針

詳細を解説する前に、どういうことをやるのか簡潔に説明しますと、

  • ダッシュボードでメーカーを選択すると、セットが更新される
  • セットに登録されているメーカーのカテゴリを「契約打ち切り」で上書きする
  • 元々のカテゴリと、上書きしたカテゴリとで売上を並べて比較する

こんな感じです。

1. 準備

まずはベースを作っていきます。

詳細な手順は省略しますが、

  1. メーカー別の製品数リストを作成。
  2. カテゴリ別の売上を表す棒グラフを作成
  3. 1と2を組み合わせたダッシュボードを作成

というポイントがクリアできていればOKです。

2. セットの作成

次に、メーカーのセットを作成します。
データソース欄の「メーカー」を右クリックし、「作成」 > 「セット…」を選択します。

この時点では値を指定しておく必要はありません。

3. セット値変更アクションの作成

ダッシュボードを開いた状態で、ツールバーの「ダッシュボード」 > 「アクション」 を開きます。

そして、「セット値の変更」アクションを作成します。
今回の主役です。

アクションの内容はこんな感じ。「セットから全ての値を削除」を選んでおくと期待した操作性になります。

これでアクションの設定は完了です。

Viz上はまだわかりませんが、ダッシュボード上でメーカー(のグラフ部分)をドラッグすると、セットが更新されるようになりました。
後の工程でわかりやすくするため、適当にメーカーを選択しておいてください。

4. カテゴリを上書きする

今回のキモである、セット値を使ってカテゴリを上書きする設定をします。
と言っても、元々のカテゴリを上書きすることはできませんので、上書きした結果の新しいカテゴリを作成します。

計算フィールドで、以下のような式を書きます。

意味合いとしては、メーカーが[メーカー セット]に含まれるものだったら'契約打ち切り'を、そうでなければそのままの[カテゴリ]を返す、という内容になります。

ちょっと違和感あるかもしれませんが、条件式を書かなくてもセットは単体でIFの条件として書くことができます。
↓と同じ意味ですね

IF [メーカー] IN [メーカー セット] THEN '契約打ち切り' ELSE [カテゴリ] END

5. 上書きしたカテゴリでグラフを作る

すでに作ってあるカテゴリ別売上のシートを複製して、先ほど作った上書きカテゴリに入れ替えます。

「契約打ち切り」というカテゴリが表示されましたね。

ちょっとややこしいですが、

ダッシュボードで選択されたメーカーがセットに保持される → セットに保持されたメーカーのカテゴリが、「契約打ち切り」で上書きされる

という状態です。

あとは、色とソートを元のカテゴリに合わせておきます。

6. ダッシュボードの体裁を整える

上書きカテゴリのシートもダッシュボードに追加します。

ちょっと不格好なので、スタイルを整えましょう。

このやり方は↓を参考にしてみてください。

7. 完成!!

これで完成です!
メーカーを選択すると、そのメーカーが「契約打ち切り」になった場合のシミュレーションができるようになりました。

さらに応用としていろんな工夫ができます

  • 今回は「契約打ち切り」だけでしたが、パラメータを使って、カテゴリAにしたパターン、カテゴリBにしたパターンなどを比べてみる
  • 選択されたメーカーは色をつけてわかりやすくする
  • 複数のセットを使って、さらに複雑な条件を可視化する

フィルターするより、セット値の変更をオススメする理由

ダッシュボード上で選択した結果を別シートに適用させる場合、おそらく真っ先に思い浮かぶのはフィルターアクションの方かなと思います。

でも今回のように、「消えた値に興味がある」ようなシチュエーションの場合は、ぜひセットを使ってみていただきたいです。
なぜなら、セットの場合は「消える値」を可視化することができるからです。

フィルターを使うと、当然ですがフィルターされた値は消えてしまいますよね。
それはそれですっきりするのですが、じゃあどのくらい消えたんだろうか、というのを直感的に理解するのはちょっと大変です。
ないものを考えるのは難易度が上がりますので、「消える値」に興味があるVizでは使いづらいのです。

一方で今回のようにセットを使うと、「ここが消えるよ!」とVizに表示することができます。
Vizにあるので、視覚的に把握しやすいですし、ツールチップだって出せます。

まとめ

フィルターではなくセットを使うことで表現の幅が広がります、という記事でした。

特に「消える値」に興味がある場合はセットの方がわかりやすいですし、グリグリ動かせるダッシュボードはやっぱり作っててテンションが上がります。
気付いたら作り込みに集中しすぎてで時間が解けるやつですね。

良いシチュエーションがありましたら、ぜひ試してみてください。

…まぁ、ちょっと面倒ですけどね。