相談・お問い合わせ
4 分で読むことができます。

【Tableau】メジャーの一部カラムをピボットして縦持ちにする方法

執筆者 okkun 更新日時 2025年1月06日

目次

はじめに

 こんにちは、okkunです。

 今回は表題にもある通り、メジャーの一部カラムを縦持ちにする方法について書いていきます。まずは以下のSampleデータの画像をご覧ください。

 このデータのうち黄色の15項目を「経費」としてまとめて集計してほしい、との要望がありました。ただ、後々ダッシュボードで経費項目それぞれの金額を可視化したい、とのこと。1,データ

 なるほど、単純に15項目を足してフィールドを作成すると、「通勤費」や「福利厚生費」といった経費の細分化ができなくなりますね…。

 かといって単純にピボットだけすると、Excel右側の「粗利」と「損益」が15倍になる、という現象が起きてしまいます…。

2,比較

解決するには

 さて、というわけで上記の問題を解決していきます。が、ターゲットではない「粗利」「損益」についてはちょっと処理がややこしい。どういうことか。

 簡単なデータを用いて解説します。

 例えば、横持ちデータに「購入金額(青)」とは別に「各顧客の1年の合計購入数(橙)」のデータが存在するとします。これを縦持ちデータに変えると、赤枠線が示すように12か月分すべてに同じ値が配置されます。

縦持ち横持ち解説1

ここで、この店舗で1年間に売れた商品数が知りたいです。求めるには…

  • 横持ちデータの場合:単純にsum
  • 縦持ちデータの場合:sumした後、縦持ちに変換した項目の数(今は12)で割る

横持ち縦持ち解説1

 このデータの場合は、1月~12月までの12項目を横持ちデータ→縦持ちデータにした時に、12で除算する、という計算が必要になります。

 と、いうわけで。メジャーが複数項目存在する場合は、単純にピボットすれば良いわけではなく、縦持ちデータにする必要が無かった他のメジャーを「つじつま合わせ」する必要があります。

 この手順、Tableauでは以下2つのアプローチ法があるので、それぞれ分けて紹介します。

 ①Tableau Prepでつじつま合わせ(後続処理がある場合におすすめ)
 ②Tableau Desktopでつじつま合わせ(後続処理が無い場合におすすめ)
 つじつま合わせ説明-1
 

解決策① -Tableau Prep編-

 手順は以下になります。

 ⅰ. 一部カラムを縦持ちデータに変える
 ⅱ. Tableau Prepにて、経費以外のメジャーを経費項目数で割る
 ⅲ. 数値を確認する
 

ⅰ. 一部のカラムを縦持ちデータに変える(ピボットする)

①まずはデータをTableau Prepに取り込み、データ型を確認します。2-1,データ型の確認-1

 ②ピボットのステップを作成し、[設定]タブ から、経費15項目を「ピボットされたフィールド」へドラッグ&ドロップで移動します。

 ③ピボット1の名前→経費項目、ピボット1の値→経費 に変更します。(名前はダブルクリックで編集できるようになります。)2-2,ピボット

ⅱ. 経費以外のメジャーを経費項目数で割る

 ①クリーニングステップを作成し、 [計算フィールドの作成] から、以下の数式を記載して [保存]を押下します 。

   フィールド名:経費項目数   数式:{FIXED: COUNTD([経費項目])}

2-3,経費項目数集計-1

 

 ②再度 [計算フィールドの作成] から、「粗利」と「損益」を①の「経費項目数」で割る計算式を記載します。

 ③経費項目数のフィールドはこの先使用しないため削除します。

2-4,粗利損益計算

ⅲ. 数値を確認する

 ①まずはTableau Prep で「集計」フィールドを作成して、粗利、損益、経費を集計フィールドにドラッグしました。3-1Prep集計

 ②エクセルで損益、粗利、経費を集計してみました。その結果、Tableau Prepでの集計値とExcelでの集計値が一致していることがわかります。(比較しやすいように、Tableau PrepでROUND関数を用いて数値を四捨五入しました。)

3-2,Excel集計-1

解決策② -Tableau Desktop編-

 手順は以下になります。

 ⅰ. 一部カラムを縦持ちデータに変える
 ⅱ. Tableau Desktopにて、経費以外のメジャーを平均する
 ⅲ. 数値を確認する
 

ⅰ. 一部のカラムを縦持ちデータに変える(ピボットする)

 解決策① -Tableau Prep編- と同様です。手順③が終了したら、データを出力しましょう。

 

ⅱ. 経費以外のメジャーを平均する

 ①Tableau Desktopにデータを接続したら、計算フィールドで以下の数式を作成して終わりです。※「経費項目」以外のディメンションをFIXED内に挿入します。

   フィールド名:粗利_AVG   数式:SUM({FIXED [顧客コード],[顧客名],[担当部署]:AVG([粗利])})

   フィールド名:損益_AVG   数式:SUM({FIXED [顧客コード],[顧客名],[担当部署]:AVG([損益])})

 

ⅲ. 数値を確認する

 ①Prep編と同様、集計値を比較してみます。その結果、Tableau Desktopでの集計値とExcelでの集計値が一致していることがわかります。

3-1集計値

 

おわりに

 今回は、Tableau Prepでメジャーの一部カラムを縦持ちにする方法を紹介しました。

 データをただ単純にピボットするだけでは解決しない!!という時に、本記事の内容をお役立ていただけると幸いです。

 

データ利活用のプロに相談してみませんか?

INSIGHT LABでは、Tableauだけではなく、他BI製品含めたご相談を承っております。導入済みのお客様からのご相談も多く頂いております。お気軽に以下よりご相談ください。

相談・お問い合わせ

okkun

執筆者 okkun

青森県出身。2023年新卒入社。未経験でIT業界に飛び込み、現在はBIエンジニアとして働く。

1 分で読むことができます。

Tableauの日付関数入門【DATEDIFF】

1 分で読むことができます。

【Tableau】日付関数入門【DATEADDで日付を可算】

2 分で読むことができます。

【Tableau】カスタムSQLの使用方法

1 分で読むことができます。

Tableauでダッシュボードを作成してみよう!

1 分で読むことができます。

ゼロからわかるBIツールTableau(タブロー)使い方 入門講座の目次