📘

Tableau備忘録2

に公開

自分で1からVizを作成した際の、はまったポイントや復習した内容を備忘録としてまとめています。


1.ダッシュボード上でのシート切り替え

💡 実装方法:パラメーターとフィルターを使う

① パラメーターの作成

まず、切り替えたいシート名の一覧をパラメーターとして作成します。

パラメーター作成

💬 Tableau Publicに公開することを考えて、シート名は英語にしました。


② 計算フィールドの作成

次に、パラメーターの値をそのまま返すだけのシンプルな計算フィールドを作成します。


パラメーターをそのままドラッグアンドドロップし、保存


③ 各シートでフィルターを設定

それぞれのワークシートに対して、以下の設定を行います。

  • 計算フィールド [表示シート]フィルターに追加
  • このシート名と同じ値だけを選択するように設定

🌀 ハマりポイント:なぜかフィルターが効かない!

❌ 想定外の挙動

本来であれば、パラメーターの値に応じて該当シートのみが表示されるはず…
▼正しい状態

⇧表示シート: 1のように、1でフィルターされている
▼誤っている状態
下記のように「表示シート」とのみ表示され、正しくフィルターできていない

⇧パラメーターを切り替えると、フィルター内の表示シートの選択も一緒に変わってしまうため、正しく動かない。
例:
パラメータ:1を選択した状態で、表示シートを1でフィルターする
 →パラメータを2に変更
 →表示シートも2でフィルターされている

✅ 解決方法:フィルターを入れ直す!

一度表示シートをフィルターから外し、再度入れなおしたところ、解決。恐らくフィルターに設定する順序の問題?バージョンの問題?


2.人口割合を出したい

初歩的な内容ですが、理解不足で躓きました。。。

💡 実装方法:計算フィールドを使う

各都道府県の高齢者の割合を調べるため下記のような計算フィールドを作成しました。

🧪 ところが…結果がおかしい?

作成したVizがこちら👇
他の年代の割合(例:[15歳未満人口]/[日本人人口])は正しく出ているのに、高齢者の割合だけが明らかにおかしい…。

✅ 解決法:それぞれの項目を SUM() で囲う!

それぞれの項目をSUM()で囲うと正しい値が出る

🤖 AIに聞いてみた:なぜこうなるの?

✅ 結論:Tableauの「暗黙的な集計」が原因です。

Tableauでは、ビュー内で他のフィールドがすべて SUM() などの集計関数で使われているときに、
集計されていない計算フィールド(非アグリゲート) があると、内部的に評価できず、
意図しない動作やエラーになります。


3.TOP10、WORST10でランクを分けたい

TOP10とWORST10の結合セットを作り、下記のような積み上げ棒グラフを作成しました。
普通にランクを入れると、シート内全体でのランクになってしまい、TOPとWORSTが分かれていません。

① 「次を使用して計算:」の変更

表計算を編集し、「次を使用して計算:」にペイン(下) を選択することで、TOP10とWORST10でランクを分けることができました。

🧪WORSTのランクってこれでいいの?

日本人人口数WORST10の中で、秋田県が最も人口が多いため、1位となっています。しかし、WORSTの場合は、人口が最も少ない都道府県が1位になっている必要があります。

TOP10のランクは昇順に、WORST10のランクは降順にする

下記のような計算フィールドを作成することで、TOP10のランクは昇順に、WORST10のランクは降順になります。

👇WORST10の場合はランクが降順になっている。


出来上がったVizがこちら

https://public.tableau.com/views/JapanesePopulation/PopulationSituationinJapan?:language=ja-JP&:sid=&:redirect=auth&:display_count=n&:origin=viz_share_link

Discussion