データの横持ちと縦持ちとは

カテゴリ: データモデリング作成日: 2026-05-11

Power BIでデータを扱う際、データの持ち方には大きく分けて「横持ち」と「縦持ち」の2種類があります。
Power BIでのグラフの見せ方も含め、メリット/デメリットを説明します。

1. 横持ち(Pivot)データとは

横持ちデータとは、属性(例えば「月」や「年」など)が列として横に並んでいるデータのことを指します。

商品名1月2月3月
商品A100120150
商品B8090100

メリット

  • Excelで見た時に、一覧性が高く直感的に理解しやすい。
  • データ入力や帳票出力のフォーマットとしてよく使われる。

デメリット

  • 列が増え続けるため(4月、5月...と列が追加される)、一括集計やフィルタリングが難しい。
  • Power BIで「月ごとの推移」をグラフ化する場合、月ごとの列が分かれているため、実現が困難。

2. 縦持ち(Unpivot)データとは

縦持ちデータとは、属性を1つの列にまとめ、それに対する値(売上など)を別の列に持たせたデータのことを指します。

商品名売上
商品A1月売上100
商品A2月売上120
商品A3月売上150
商品B1月売上80
商品B2月売上90
商品B3月売上100

メリット

  • コンピュータやデータベースが処理しやすい形式。
  • Power BIで、集計・フィルタリング・グラフ化が容易。
  • データが増えても「行」が追加されるだけなので、モデル構造が変わらない。

デメリット

  • 人間がパッと見たときの一覧性は横持ちに比べて劣る。

3. Power Queryでの対処(ピボット解除)

Power BIで横持ちデータを取り込んだ場合、Power Queryエディターを使用して「縦持ち」に変換(ピボット解除)します。

  1. 下図のようなExcelテーブルを取り込みます。

横持ちデータの取り込み

  1. 取り込んだ後、元のテーブルを参照し、縦持ちテーブルを用意します。
    参照することで、元データの更新と連動します

縦持ちデータの用意

  1. 固定したい列(商品名列)を選択し、「その他の列のピボット解除」を選択します。
    選択列を右クリックするか、上部リボンの「変換」から「列のピボット解除」>「その他の列のピボット解除」を選びます。

ピボット解除

  1. 列名を変更し、型を修正します。
    自動で「属性」と「値」列が作成されるため、わかりやすい名前(「売上月」、「売上高」など)に変更します。
    売上月列は日付型に変更します。

列名を変更


4. Power BIでのグラフの見え方

このレシピのサンプルデータは、商品、売上月、売上高の3つの情報を持つため、下図のようなマトリックスが作成できます。

Power BIでのグラフの見え方

横持ちの説明

属性が横並びになっているため、売上月として列を持つことができません。
そのため、月ごとの合計を出すためには、DAXを使ったメジャーの用意が必要です。
また、日付テーブルを用意しても、売上月に対してリレーションが結べません

縦持ちの説明

商品別、売上月別に行列を柔軟に入れ替えることが可能です。
売上月は年月日の日付型で持つことができるため、年月日の階層も表現できます。
また、商品マスター(商品列、分類列など)を持てば、マスターとリレーションが結べるため、階層を表現できます。

線グラフの違い

「横持ち(Pivot)データとは」のデメリットで述べたように、横持ちでは月ごとの遷移(線グラフ)は表現できません。

線グラフの比較

広告