コラム詳細

Tableauでデータ構造を変更するピボット処理の手順

2024年01月26日

  • Tableau
  • 使い方

はじめに
セラクCCCのSalesforce推進部Tableau担当のUです。Tableauはさまざまなデータソースを利用できますが、データ構造を意識することで「うまくデータを読み込めない」といったリスクを低減できます。そこで本記事では効率的なデータ分析に役立つ、データ構造に関する基礎知識からデータ構造を変更するピボット処理の操作手順までご紹介します。

 

分析に利用するデータ構造の「縦持ち」と「横持ち」

Tableauは、ExcelやSalesforceなどさまざまなアプリで管理しているデータの分析に利用できますが、どのような形式でも同じように扱えるという訳ではありません。「分析に利用しやすいデータ構造」が存在するため、使用機会の多いソースのデータ構造を把握し、必要に応じて分析前にデータ構造を変更することで、効率的に分析作業を進められます。

 

Tableauで利用する機会の多い表形式データは、「縦持ち」と「横持ち」の2種類に分けられます。「縦持ち」はシンプルなリスト形式、「横持ち」はクロス集計表のように行と列にそれぞれ異なる属性が配置された形式です。「縦持ち」はデータを縦に追加、「横持ち」はデータを横に追加することにそれぞれ由来します。
同じデータを「縦持ち」と「横持ち」で表現すると、その差異は明らかです。横持ちデータは縦横2つの比較軸があり、人間が視覚的に短時間でデータを整理して理解しやすい構造です。視認性に優れているため、資料作成時や出力時といった閲覧に適しています。一方で、縦持ちデータは加工や抽出などの操作に適した構造です。そのためデータベースでの管理やBIツールでの利用に向いています。

 

「横持ち」データはTableauでうまく読み込めない場合があるほか、傾向線や予測などの機能が使えない、表形式で行方向の合計が出力できないといった問題もあるため、「縦持ち」に形式を変更するのが一般的です。

 


<データ構造変更のイメージ>

 

データ構造を変更するピボットとは

データ構造を「横持ち」から「縦持ち」にするためには、「行」を「列」に変更する必要があります。表計算やデータ分析の分野でこのデータの「列と行」の変更に使われる用語が、「回転軸」を意味する「ピボット(pivot)」です。ピボットはExcelの「ピボットテーブル」に代表されるように、データの行と列を回転させる機能名として広く使われています。

 

Tableauの「ピボット」に関する機能は1つではありません。
『Tableau Desktop』は[ピボット]機能を備えています。データのクリーニングと準備を行う『Tableau Prep Builder』には[ピボット]機能があり、どの機能もマウス操作で簡単に扱えます。

 

『Tableau Desktop』ピボット機能の操作手順

『Tableau Desktop』のピボット機能は、Excelやテキストファイル、Googleスプレッドシート、pdf形式のデータソースを対象に利用できます。
操作手順は簡単です。まずデータソースに接続した後に、[データソース]タブをクリックして、データソースページから始めます。次に「横持ち」を「縦持ち」に、つまり「行」を「列」に変更するために、2つ以上の列を選択します。列名の右隣の[▼]か、もしくは選択した列を右クリックしてメニューを開き、[ピボット]を選択するだけで操作は完了です。
Tableauで読み込んでいるデータの「列名の行」を、[ピボットフィールド名]と[ピボットフィールド値]で構成される列に変換できます。

 


<[▼]もしくは右クリックからメニューを表示して[ピボット]を選択>

 

『Tableau Prep builder』でのピボット処理手順

ピボット処理は『Tableau Desktop』にデータを読み込んだ後だけでなく、データの抽出・加工作業を効率化する『Tableau Prep builder』でデータクリーニングと同時に実行できます。Tableau Desktopと同じようにフィールド単位でピボット処理できるほか、文字列でピボット条件を設定するワイルドカード検索は、データソースが更新されてもフローを実行するだけでピボット対象を自動で検索して処理できます。

 

操作手順は簡単で、数式やコードは不要です。
接続からデータを読み込み、ピボット処理するテーブルを[フロー]ペインにドラッグし、[+]から[ピボット]を選択して設定を開始します。次に[ピボットされたフィールド] ペインで、[ワイルドカード検索を使用してピボットする]を選びます。

 


<[ピボット]を選択して設定を開始>

 

[ピボット1の値]の下の検索ボックスを使って「文字列」の形で条件を指定し、検索オプションは「部分一致」、「前方一致」または「後方一致」のいずれかを選択します。
データソース更新時にTableau Prep Builderでデータを読み込み、作成したピボット処理のフローを実行するだけで、作業完了です。

 


<文字列を利用したワイルドカード検索の方法>

 

文字列の指定によるピボット処理は便利ですが、同じ文字列を含むほかのデータも自動でピボット処理されてしまうため、文字列指定には細心の注意を払いましょう。データ分析者だけでなく、データ管理者でと「分析しやすいデータ構造」や「文字列指定」についての情報を共有し、分析に利用しやすい形式や項目名でデータを保管することも重要です。

 

カスタムSQLを使ったピボット処理

Tableauで利用できる各種機能以外のピボット処理方法が、データベース言語SQLを使った「カスタムSQL」です。TableauからデータベースにSQLで指示を送り、データベースから指示に沿ってデータ構造を変更したデータソースを受け取れます。

 

カスタムSQLの設定は、データに接続して左ペインの[新しいカスタムSQL]オプションから開始します。[カスタムSQLの編集]ダイアログボックスに、Tableau公式Webヘルプの「カスタムSQLを使用してデータをピボット処理するには」を参考に、カスタムSQLの記述が必要です。
カスタムSQLは、ピボット処理を適用する列や新しく作る列の名称など、利用するデータソースに合わせてカスタムする必要があり、先にご紹介した機能を扱うよりも操作難易度は高くなってしまいます。SQLの利用経験と扱うデータに関する知識両方を備えたエンジニアが在籍している場合以外は、社外のプロに設定を依頼するといった方法も検討した方がよいでしょう。

 

ピボット処理の注意点

ピボット処理は便利ですが、Tableauの他機能との干渉によって想定したように動作しない場合があるため注意が必要です。

 

・カスタム分割機能との干渉
カスタム分割は1つのフィールドを複数のフィールドに分割するTableau Desktopの機能です。たとえば「姓名」を間のスペースで2つのフィールドに分割するといった場合に利用します。カスタム分割したフィールドは計算フィールドとして扱われ、ピボット機能を利用できません。
「カスタム分割」と「ピボット」を両方使用したいという場合は、Tableau Desktopではなく、Tableau Prep Builderを使う必要があります。

 

・参照機能との干渉
[参照]機能はTableauのグラフ表示画面から、グラフを構成するデータを参照する機能です。ピボット機能の対象にしたデータをグラフ化していた場合、ピボット機能で消滅したグラフ内のフィールドは作成したグラフから参照できず赤色で表示され、[データ]ペイン内のフィールド名の横には[ ! ]が表示されます。
またピボット処理の対象に設定したフィールドを、データソース側で削除してTableau側でデータ更新した際には、ピボットフィールドにNULL値が表示されます。

 

・データソース更新時のピボット処理の挙動
データソースの更新時にピボットの対象は自動追加されないことも覚えておきましょう。たとえば横持ちデータに毎月のデータが追加されていく場合、追加されたフィールド名の横にある[▼]から[ピボットに追加]を選択して、毎月手動でピボット処理の対象に設定する必要があります。
将来的に必要だと分かっている列名をデータソース側で事前に作成し、Tableau側で先にピボット処理しておけば、データソースの更新時の操作が不要になります。また、Tableau Prepで文字列を使ったピボット処理のフローを作成しておき、データソース更新時にフローを実行するのも有効です。

 

まとめ

効率的にデータ分析を実践するため、Tableauで扱いやすい形にデータを整える作業は不可欠です。しかしピボット処理には複数の実行方法があり、データのレコード数やフィールド数、分析の頻度といった要素で最適な方法はケースバイケースです。そのためTableauを実践的に使いこなすためには、単純な操作手順を覚えるだけでなく、状況に応じて複数の方法を使い分ける必要があり、独学で実践的なコツを掴むにはどうしても時間がかかります。そこで「自社のデータ活用の現場にマッチしたノウハウを学びたい」、「しっかりと社内にデータ活用を定着させたい」といった場合にはご相談ください。当社は300名(23年5月時点)超のSalesforce/Tableau専門コンサルタントやセキュリティ技術者を擁する、活用支援サービスのプロフェッショナルです。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください