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がこちら
Discussion