Tableauで横持ちデータを縦持ちデータに変換する際のピボット処理の注意点についてご紹介します
データソースの縦持ち・横持ちについて
分析したいデータが時間の経過とともに横に増えていくようなデータがあるかと思います。
例えば、4月、5月、6月と月が経過するごとに横に増えていくようなデータです。これを横持ちのデータと呼んでいます。
分析する際は縦持ちにした方が圧倒的に使いやすいです。以下のような形です。
このようにデータを持っていれば、月という時系列の軸で分析が可能になります。
データをTableauで縦持ちに変換するには(ピボット)
横持ちのデータを縦持ちに変換するには、ピボット機能が利用できます。
まず、データソースの画面に移ります。
ここで、ピボットを行いたいフィールドを選択し、フィールド名のところで右クリックし、右クリックメニューから「ピボット」を選択します。
これで無事にピボットされ、縦持ちのデータになりました。
ピボットの状態で新しい月が増えると・・・
さて、先程は4月~6月でしたが、8月になると7月のデータが生成され、新たな列としてインプットファイルに入ってきたとします。
Tableau Desktopで開くと・・・
なんと、ピボットされていません!!!
これを修正するには、「7月」フィールドを右クリックし、右クリックメニューから「ピボットにデータを追加」を選択します。
実行後です。
無事に7月がピボットに追加されました。
Tableau Desktopの場合、「データが更新された際、新規フィールドをピボットを自動的に追加」ということはしてくれないので、注意が必要です。
でも、こういう作業めんどくさいですよね!
Prepを使って自動的に新規フィールドをピボットする
Tableau Prep Builderを使えば、自動的に新規フィールドをピボットすることが可能です。とはいえ、設定次第となります。
まず、Prepでピボットをするには、読み込んだデータソースの「+」マークをクリックしてメニューを出し、「ピボット」を選択します。
Prepでのピボットの方法は、この画面でピボットしたいフィールドを選択し、「ピボットされたフィールド」にドラッグ&ドロップすることで可能です。
が、ちょっとまってください!!
これだと自動でピボットできません。
正しい方法は以下の通りで、「ワイルドカード検索を使用してピボットする」が正解です。
※Tableau Prep Builder バージョン 2019.1.1 以降
この場合、うまく条件をヒットするように設定が必要です。今回であれば、ピボットしたいフィールドの名前の最後に「月」と記載されているので、検索ボックスに「月」と入れて、検索オプションは「後方一致」にすればOKです。
これで、条件に一致する限りは新規フィールドが増えても自動的にピボットされます(逆に想定していないフィールドがピボットされる可能性もあるので気をつけてください)。
Desktopでどうしてもやりたい
PrepじゃなくてDesktopで楽したい、という場合はデータソース側の対応が必要です。
対処法としては、「必要なフィールドは最初から作っておく(中身はからっぽで)」ということで実現可能です。
これであれば、4月~3月までのフィールドがあるため、あらかじめピボットしておくことが可能です。
あとは、ツールで扱うにはそもそも横持ちが悪いので、最初からデータソースを縦持ちになるようにする、というのが一番の解決方法です。
まとめ
- Tableau Desktopのピボット機能は1回限りで新規フィールドはピボットできない
- Tableau Prep Builderのピボット機能は、ドラッグ&ドロップで実行すると、Desktopと同様新規フィールドはピボットできない
- Tableau Prep Builderの「ワイルドカード検索を使用してピボットする」機能を使えば、条件に当てはまるフィールドは自動的にピボットされる
- フィールドが増えないように、最初から必要なフィールドを作っておけばDesktopでも楽して運用できる
- そもそも縦持ちのデータで運用するようにする
※Tableau Desktop 2020.1、Tableau Prep Builder 2020.1時点の情報です