ピボット データ ([列] から [行])

クロス集計の書式で保存されているデータの分析は、Tableau では困難な場合があります。Microsoft Excel、テキスト ファイル、Google スプレッドシート、.pdf のデータ ソースを扱う際には、データのピボット処理を行うことにより、クロス集計書式からコラム書式に変換することができます。その他のデータ ソースを操作している場合は、カスタム SQL を使用するピボット (Tableau Desktop)することができます (Tableau Desktop)。

たとえば、3 社のベンダーが四半期ごとに販売したデバイスの台数が、個別のフィールドに入っているものとします。この場合、ピボット処理により、ベンダーを 1 つのフィールドに、デバイスの販売数を別のフィールドに入れることができます。

データのピボット処理

データ ソースをセット アップしたら、グリッドで、2 列以上の列を選択します。列名の隣のドロップダウン アローをクリックして、[ピボット] を選択します。新しい列、「ピボット フィールド名」および "「ピボット フィールド値」が作成され、データ ソースに追加されます。ピボットを作成するために選択した元の列は、新しい列で置き換えられます。

ピボットへの追加

ピボットにさらにデータを追加するには、別の列を選択し、列名の横にあるドロップダウン矢印をクリックして、[ピボットに追加] を選択します。分析を開始する前に、ピボットの列とそれらの値が予期したとおりであることを確認してください。

 

ピボットを削除するには、ピボット列の名前の隣のドロップダウン アローをクリックして、[ピボットの削除] を選択します。

ピボットのトラブルシューティング

  • ビューの赤いフィールド、および [データ] ペインの感嘆符の付いたフィールド: 元のフィールドは新しいピボット フィールドに置き換えられるため、ビュー内の元のフィールドへの参照は機能しなくなります。これにより、ビュー内のフィールドが赤色になるか、[データ] ペイン内のフィールドの横に赤色の感嘆符が表示されます。

  • グリッド内の NULL 値: ピボットに使用されている元のフィールドがすべて削除されている場合 (抽出の更新など)、ピボット フィールドに NULL 値が表示されます。

  • ピボット オプションなし: ピボットは、単一の Microsoft Excel、テキスト ファイル、Google スプレッドシート、.pdf のデータ ソースで 2 つ以上の列を選択する場合に表示されます。Tableau Desktop で別のデータ ソースを使用している場合は、カスタム SQL を使用してピボット処理を行うことができます。

カスタム SQL を使用するピボット (Tableau Desktop)

Excel、テキスト ファイル、Google スプレッドシート、.pdf のデータ ソースを操作していない場合でも、カスタム SQL を使用してデータをピボット処理することもできます。カスタム SQL クエリで UNION ALL 演算子を使用する場合、個別の列から値を取得し、その値を新しい列に配置することができます。

たとえば、"Contest" という表があるとします。

Contest

Runner Start Time End Time
Amanda 9/3/2016 3:04 PM 9/3/2016 3:25 PM
Oscar 9/3/2016 3:04 PM 9/3/2016 3:21 PM
William 9/3/2016 3:04 PM 9/3/2016 3:16 PM

Tableau でこのデータの分析を最適化するには、次のカスタム SQL を使用して、"Start Time (開始時刻)" および "End Time (終了時刻)" 列をピボット処理し、それらの値を 1 つの列に配置できます。

Select [Runner]
, 'Start' as [Action]
, [Start Time] as [Time]
From [Contest]
Union ALL
Select [Runner]
, 'End' as [Action]
, [End Time] as [Time]
From [Contest]

上記のカスタム SQL クエリは次を実行します。

  • "Start Time (開始時刻)" 列ヘッダーを "Start (開始)" という名前の文字列にピボット処理し、その値を "Action (操作)" という名前の新しい列に追加します。
  • "End Time (終了時刻)" 列ヘッダーを "End (終了)" という名前の文字列にピボット処理し、その値を "Action (操作)" という名前の新しい列に追加します。
  • "Start Time (開始時刻)""End Time (終了時刻)" 列をピボット処理し、それらの値が "Time (時刻)" という名前の新しい列に入るようにします。

次の表は、このカスタム SQL クエリの結果を示しています。

Runner Action (操作) Time
Amanda

開始

9/3/2016 3:04 PM
Oscar 開始 9/3/2016 3:04 PM
William 開始 9/3/2016 3:04 PM
Amanda End (終了) 9/3/2016 3:25 PM
Oscar End (終了) 9/3/2016 3:21 PM
William End (終了) 9/3/2016 3:16 PM

 

カスタム SQL を使用してデータをピボット処理するには

  1. データに接続します。

  2. 左ペインの [新しいカスタム SQL] オプションをダブルクリックします。詳細については、カスタム SQL クエリへの接続を参照してください。

  3. [カスタム SQL の編集] ダイアログ ボックスで次のカスタム SQL クエリをコピーして貼り付け、内容を表に関する情報に置換します。

    Select [Static Column]
    , 'New Value (from Column Header 1)' as [New Column Header]
    , [Pivot Column Values 1] as [New Values]
    From [Table]
    Union ALL
    Select [Static Column]
    , 'New Value (from Column Header 2' as [New Column Header]
    , [Pivot Column Values 2] as [New Values]
    From [Table]
    Union ALL
    Select [Static Column]
    , 'New Value (from Column Header 3' as [New Column Header]
    , [Pivot Column Values 3] as [New Values]
    From [Table]

    次が true の場合:

    • "Static Column (静的な列)": ピボットに含めない、"Table (表)" の列のコンマ区切りリスト (ディメンションとメジャーの両方)。

    • "New Value (from Column Header 1-3) (新しい値 (列ヘッダー 1-3))": ピボットの行の値として使用される、元の列ヘッダーに付ける新しい名前。

    • "Pivot Column Values 1-3 (列の値 1-3 のピボット処理)": 値を 1 つの列へとピボット処理する必要がある列。

    • "New Column Header (新しい列ヘッダー)": "New Value (from Column Header 1-3) (新しい値 (列ヘッダー 1-3))" の新しい行の値を含む新しい列に付ける名前。

    • "New Values (新しい値)": "Pivot Column Values 1-3 (列の値 1-3 のピボット処理)" の元の値を含む新しい列に付ける名前。

    • "Table (表)": 接続する表。

  4. [OK] をクリックします。

ありがとうございます!