データの横持ちと縦持ちとは
カテゴリ: データモデリング作成日: 2026-05-11
Power BIでデータを扱う際、データの持ち方には大きく分けて「横持ち」と「縦持ち」の2種類があります。
Power BIでのグラフの見せ方も含め、メリット/デメリットを説明します。
1. 横持ち(Pivot)データとは
横持ちデータとは、属性(例えば「月」や「年」など)が列として横に並んでいるデータのことを指します。
| 商品名 | 1月 | 2月 | 3月 |
|---|---|---|---|
| 商品A | 100 | 120 | 150 |
| 商品B | 80 | 90 | 100 |
メリット
- Excelで見た時に、一覧性が高く直感的に理解しやすい。
- データ入力や帳票出力のフォーマットとしてよく使われる。
デメリット
- 列が増え続けるため(4月、5月...と列が追加される)、一括集計やフィルタリングが難しい。
- Power BIで「月ごとの推移」をグラフ化する場合、月ごとの列が分かれているため、実現が困難。
2. 縦持ち(Unpivot)データとは
縦持ちデータとは、属性を1つの列にまとめ、それに対する値(売上など)を別の列に持たせたデータのことを指します。
| 商品名 | 月 | 売上 |
|---|---|---|
| 商品A | 1月売上 | 100 |
| 商品A | 2月売上 | 120 |
| 商品A | 3月売上 | 150 |
| 商品B | 1月売上 | 80 |
| 商品B | 2月売上 | 90 |
| 商品B | 3月売上 | 100 |
メリット
- コンピュータやデータベースが処理しやすい形式。
- Power BIで、集計・フィルタリング・グラフ化が容易。
- データが増えても「行」が追加されるだけなので、モデル構造が変わらない。
デメリット
- 人間がパッと見たときの一覧性は横持ちに比べて劣る。
3. Power Queryでの対処(ピボット解除)
Power BIで横持ちデータを取り込んだ場合、Power Queryエディターを使用して「縦持ち」に変換(ピボット解除)します。
- 下図のようなExcelテーブルを取り込みます。

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

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

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

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

横持ちの説明
属性が横並びになっているため、売上月として列を持つことができません。
そのため、月ごとの合計を出すためには、DAXを使ったメジャーの用意が必要です。
また、日付テーブルを用意しても、売上月に対してリレーションが結べません。
縦持ちの説明
商品別、売上月別に行列を柔軟に入れ替えることが可能です。
売上月は年月日の日付型で持つことができるため、年月日の階層も表現できます。
また、商品マスター(商品列、分類列など)を持てば、マスターとリレーションが結べるため、階層を表現できます。
線グラフの違い
「横持ち(Pivot)データとは」のデメリットで述べたように、横持ちでは月ごとの遷移(線グラフ)は表現できません。

広告