横持ちのデータを縦持ちに変換する「列のピボット解除」

Published: feedback 共有

こんにちは、Power BI サポート チームの丸山です。

データ分析の処理に適しているデータの持ち方は、縦方向に蓄積された “縦持ちのデータ” ですが、何らかの事情で仕方なく横方向に蓄積されている “横持ちのデータ” を使うシーンがあると思います。
Power BI では Power Query の「列のピボット解除」をすることで “横持ち → 縦持ち” にデータを変換することが可能です。今回はその「列のピボット解除」の手順をご紹介します。


重要

本記事は弊社公式ドキュメントの公開情報を元に構成しておりますが、本記事編集時点と実際の機能に相違がある場合がございます。

最新情報につきましては、参考情報として記載しておりますドキュメントをご確認ください。


目次


  1. 横持ち・縦持ちとは?
  2. 「列のピボット解除」の手順
  3. 活用事例

横持ち・縦持ちとは?


横持ちのデータ : 行と列にそれぞれ異なる項目が配置され、データが横方向に蓄積されていきます。一般的に Excel などによくみられる形で、人が見るには視認性が高いですがデータ分析では扱いづらい形式です。


縦持ちのデータ : 列に配置された項目に対して、データが縦方向に蓄積されていきます。一般的にリレーショナルデータベース(RDB)の構築やデータ分析の処理は縦持ちのデータが適しているといわれます。



「列のピボット解除」の手順


Power BI ではPower Query の「列のピボット解除」によって横持ちのデータを縦持ちに変換することができます。手順はとてもシンプルです。

以下に具体的なステップをご説明します。


  1. Power Query エディターを開きます。

  1. 対象の列を選択して [変換] > [列のピボット解除] から解除方法を選択します。

3つある列の解除方法はそれぞれ以下の意味です。

<列のピボット解除>
選択しているすべての列と、今後増えるかもしれない列をピボット解除します。

<その他の列のピボット解除>
選択している列以外と、今後増えるかもしれない列をピボット解除します。

<選択した列のみをピボット解除>
いま選択している列のみをピボット解除します。今後追加されるデータはピボット解除されません。


  1. ピボット解除がされて「属性」「値」 という名前の列によって縦持ちのデータができます。
→名前を変更したい場合は、列名をダブルクリックして変更(以下例ではそれぞれ「date」「sales」に変更)
  1. [閉じて適用] を押してモデルに適用する

  1. あとはレポートのビジュアライズで列を利用するだけです。

手順としては以上です。



活用事例


数あるビジュアルの中では、軸に複数のデータフィールドを配置できず、凡例でしか分けられないという制限があるビジュアルがあります。
例えば、積み上げ棒グラフは、Y軸に複数のデータフィールドを配置できますが、カスタムビジュアルを含めた一部のビジュアルだと複数のフィールドを配置できず、分けた表現をするために凡例を利用することが必要です。

例えば、 profit と sales という2つのフィールドでグラフを色分けしたいが、軸に複数のフィールドが置けないビジュアルである場合、profit と sales の列をピボット解除して、作成された「属性」という列1つを凡例に配置することで、分けた表現をビジュアライズすることができます。


以上となります。

横持ちのデータは、根本的にはデータ蓄積の時点で縦持ちに改善するということが望ましいですが、Excel 上で視認性を維持する必要がある、ツールから DL したデータが横持ちである、などさまざまな事情があると存じます。その場合は Power Query を用いれば上記手順にて手軽に縦持ちに変換することができるのでぜひお試しください。

参考情報


以上、本ブログが少しでも皆様のお役に立てますと幸いでございます。


アンケートご協力のお願い
Japan CSS Support Power BI Blog では、作成する記事やブログの品質向上を目的に、匿名回答でのアンケートを実施しております。
ユーザー様のご意見・ご要望を参考に今後もお役に立てるブログを目指してまいりますので、ぜひご協力いただけますと幸いでございます。 

※ 所要時間は1分程度となります。
【ご協力のお願い】Microsoft Japan CSS Power BI Blog ご利用に関するアンケート

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。