営業所ごとの売上を見るときに、Excelで営業所を縦に並べて年月は横に並べたマトリクス表を作ることがあると思います。

この手のマトリクス表は、人間は見やすいのですが、データとしては扱いにくいです。
ピボットテーブルを使った場合、年月ごとに項目が並んでしまって分析には使いづらいです。

このままでは扱いづらいので、縦に並んだ表形式に変換する必要があります。
下図のように、縦に並んだ表に加工したい場合、Power Queryの「列のピボット解除」を使います。ピボット解除を使うと、選択した列を縦に並び替えることができます。

列のピボット解除は3種類ある
列のピボット解除は以下の3種類あります。それぞれ挙動が異なります。
- 列のピボット解除
- その他の列のピボット解除
- 選択した列のみをピボット解除
列のピボット解除
「列のピボット解除」の説明では「現在、非選択の列以外すべての列を属性/値のペアに変換します。」と記載があります。

これは、「現在選択した列と、今後増えた列をピボット解除する」という意味です。
具体的な手順を解説していきます。
Power Queryエディターの「変換」タブを開き、縦に並べる列を選択し、「列のピボット解除」をクリックします。

※冒頭のサンプルでは2025年3月までなので、最後の列まで選択してください。

選択した列が縦に並びました。

数式は以下の通りになっています。
= Table.UnpivotOtherColumns(変更された型, {“営業所”}, “属性”, “値”)
Table.UnpivotOtherColumns関数の第2引数に「営業所」が入っています。これは「営業所」以外の列を選択したたため、「営業所」以外の列をピボット解除するという意味になります。
その他の列のピボット解除
「その他の列のピボット解除」の説明では「現在選択されている列以外のすべての列を属性/値のペアに変換します。」と記載があります。

これは、「現在選択した列以外をピボット解除する」という意味です。
具体的な手順を解説していきます。
Power Queryエディターの「変換」タブを開き、縦に並べ”ない”列を選択します。「列のピボット解除」の横にある▼をクリックし、「その他の列のピボット解除」をクリックします。

選択した列が縦に並びました。

数式は以下の通りになっています。
= Table.UnpivotOtherColumns(変更された型, {“営業所”}, “属性”, “値”)
列のピボット解除と同じ数式になりましたね。「営業所」列を選択したため、「営業所」以外の列をピボット解除するからです。
選択した列のみをピボット解除
「選択した列のみをピボット解除」の説明では「現在選択されている列のみ、を属性/値のペアに変換します。」と記載があります。

「列のピボット解除」と違うのは、今後増えた列はピボット解除の対象外になります。
具体的な手順を解説していきます。
Power Queryエディターの「変換」タブを開き、縦に並べる列を選択します。「列のピボット解除」の横にある▼をクリックし、「選択した列のみをピボット解除」をクリックします。

選択した列が縦に並びました。

数式は以下の通りになっています。
= Table.Unpivot(変更された型, {“2024/04”, “2024/05”, “2024/06”, “2024/07”, “2024/08”, “2024/09”, “2024/10”, “2024/11”, “2024/12”, “2025/01”, “2025/02”, “2025/03”}, “属性”, “値”)
Table.Unpivot関数の第2引数に選択した列が全て入っています。第2引数に入っている列がピボット解除の対象となります。
つまり、今後データの取得元で列が追加されてもピボット解除の対象にはなりません。
ピボット解除後のデータ加工
このままでは列名がわかりにくいので、「属性」列を「年月」、「値」列を「売上金額」に変更します。

データ出力した結果
下図のように縦に並び替えられます。

ピボットテーブルで分析しやすい項目になりました。ピボットテーブルで「年月」列を「列」にドラッグすると横並びにできますし、縦に並んだまま自在に分析できるため、使い勝手が良くなりました。
