はじめに
こんにちは。DataSabar取得に向け鍛錬中のしまです。
今回は動的セットの実装方法について、自分が学ぶ中でこんな記事が欲しかった!と思った内容をまとめています。
少しでも誰かの役に立てたらいいな。と思っています!
目次
セットの概要・作成方法
セットとは:
セットはTableauの機能のひとつで、使用することにより「ユーザが選択したデータ」と「選択していないデータ」に分類することができます。データをある条件でまとめて見たいときに使用します。
セットの作成方法:
セットを作成する方法は①ディメンションから作成②シート上から作成の2種類です。
【ディメンションから作成する方法】
[手順1]
セットを作成したいディメンションを右クリック>「作成」をクリック>「セット」をクリック
[手順2]
セットの作成でまとめたいデータを選択後OKをクリックして作成。
[全般] [条件] [上位]の3種類のタブが存在。
[全般]:手動でデータを選択したいときに利用
[条件]・[上位]:条件でデータを指定したいときに利用
フィルタのような感覚で使えます!
【シート上からの作成方法】
セットでまとめたい項目を選択し右クリック>「セットの作成」をクリック>OKをクリック で作成。
動的セットの概要と実装方法
動的セットとは:フィルターによって中身が変化する動的なセットのこと。
説明書きだけではイメージがつきにくいと思うので動的セットの活用例を考えてみます。
例:「ある年の売上TOP10の顧客名を見たい場合」
このうち
「ある年の」⇒フィルタで実装
「売上TOP10の顧客名」⇒セットで実装
なので
「ある年の売上TOP10の顧客名」⇒フィルタ+セットで実装
ということになります。
具体的な操作を見ていきましょう。
①~④の操作で実装します。
①売上TOP10の顧客名セットを作成
②[売上]を列、[顧客名]を行、売上TOP10の顧客名セットをフィルタに入れる
③オーダー日(年)をフィルタに入れる
④オーダー日(年)のフィルタをコンテキストに追加する
※④に関しては次の章で補足説明
【①売上TOP10の顧客名セットを作成】
顧客名ディメンションを右クリック>作成をクリック>セットをクリック する。
名前を分かりやすくするために「売上TOP10の顧客名」とし、上位タブのフィールド指定で上位10x売上合計に設定しOKをクリックする。
【②[売上]を列、[顧客名]を行、売上TOP10の顧客名セットをフィルタに入れる】
下のように表示される。
【③オーダー日(年)のフィルタを作成】
オーダー日をフィルタにドラッグアンドドロップし年を選択しフィルタを作成
下写真のような年のフィルタを作成する(日付フィルタを分かりやすくまとめたサイトはこちら ⇒ https://bi.atara.co.jp/knowledge/tableau_graph_231107_01 )
【④オーダー日(年)のフィルタをコンテキストに追加する】
年フィルタを右クリック>コンテキストに追加をクリック
①~④実装後のシートは以下のようになります。2021年でフィルタをかけたときと2023年でフィルタをかけたときとではTOP10の顧客名が変化しています。(動的セット完成!)
動的セット実装の重要なポイント「コンテキストフィルタ」
実装手順【④オーダー日(年)のフィルタをコンテキストに追加する】について気になった方も多いのではないでしょうか。
試しに④を行わなかった場合を見てみます。
すべての年でフィルタをかけたときと2022年でフィルタをかけたときのTOP10の顧客名リストを見てみると、、、
なんと、変化していません!(昇順にしているため順番が変化していますが10名のラインナップは変化していません)
どうしてでしょうか。
そこで、フィルタをコンテキストに追加するとどうなるかですが、、
コンテキストに追加すると複数のフィルタが存在した場合にフィルタする順番が変化します。
(※コンテキストに追加したフィルタをコンテキストフィルタという)
前章で説明した実装手順を例にとると
年のフィルタをコンテキストに追加前:セットの条件判定(フィルタ)⇒年のフィルタの順でフィルタがかかる
年のフィルタをコンテキストに追加後:年のフィルタ⇒セットの条件判定(フィルタ)の順でフィルタがかかる
上記でTOP10の顧客名が変化しなかったのは、2022のフィルタがかかる前にセットのTOP10の顧客名が決められてしまっていたためだった、ということです。
Tableauには多くのフィルタの種類が存在していて、フィルタの処理順のことをクエリパイプラインと呼びます。今回はその考え方を使いました。(詳しくはこちら ⇒ https://note.com/minoru_tech/n/n9bbd821563bf )
まとめ
- セットは選択したデータとそれ以外のデータとに分類する機能である
- 動的セットはフィルタ条件で中身が変化するセットのことである
- 動的セットを実装するにはフィルタをコンテキストに追加する必要がある