ただ、クロス集計表のままだと、横方向に並んだ項目をまとめて処理しにくいのですが、何か良い方法はありますか?
具体的には、Power Queryエディター上の「列のピボット解除」コマンドが有効です!
では、詳細を解説していきますね。
目次[閉じる]
解説動画
この記事の内容は下記の動画「【パワークエリ#8】レイアウト変更テクニック3選 – 使いにくい表レイアウトを使いやすく整形・加工する作業を自動化する(列のピボット解除、列のピボット、入れ替え)」でも解説しています。
コメント欄の目次の時間部分をクリックすると該当の解説へジャンプできますよ!
はじめに
この記事はパワークエリの概要を把握していることが前提です。
パワークエリの概要は以下の記事をご参照ください。
「列のピボット解除」コマンドとは、Power Queryエディター上でクロス集計表をデータベース形式に変換する機能
「列のピボット解除」コマンドは、クエリの新規作成ステップのうち、Step2の「取得データを整形/加工(Transform)」に該当する機能です。

クエリ内の一連の整形作業の中で、クロス集計表→データベース形式へ表レイアウトを変更したい場合に「列のピボット解除」コマンドを使いましょう。
以下の表は、縦軸が「社員」、横軸が「月」のクロス集計表(集計値は残業時間)。

「列のピボット解除」コマンドを活用することで、Power Queryエディター上で横軸に展開されていた見出し・集計値を2列に変換できます。
「列のピボット解除」コマンドは選択した列をピボット解除するが、選択した列以外をピボット解除したい場合は「その他の列のピボット解除」コマンドが有効。
一例として、「列のピボット解除」コマンドを使用し、「4月」~「9月」列を「月」・「残業時間」の2列に変換したものが以下です。

この通り、Power Queryエディター上で列をピボット解除したステップを記録できました。
「列のピボット解除」コマンドの場合、デフォルトのステップ名は「ピボット解除された列」になる(クエリ内で2つ目以降の「ピボット解除された列」ステップは連番が付加)。
「その他の列のピボット解除」コマンドの場合、デフォルトのステップ名は「ピボット解除された他の列」。
後は、クエリ新規作成ステップのStep 2とStep 3を行いましょう。
これにより、クエリに記録した「列のピボット解除」・「その他の列のピボット解除」コマンドのステップを自動化できます。
「列のピボット解除」・「その他の列のピボット解除」ステップを記録後、対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は後述)。
クエリの新規作成ステップのStep 2に役立つ各種コマンドや、Step 3の手順の詳細を知りたい方は、パワークエリの概要記事をご参照ください。
【Excel】パワークエリ(Power Query)とは?できることや使い方入門【動画あり】
「列のピボット解除」コマンドの使用手順
ピボット解除したい列を選択した方が効率的な場合、「列のピボット解除」コマンドを使用しましょう。
おすすめなケース:ピボット解除対象の列数 < ピボット解除対象外の列数
「列のピボット解除」コマンドの場合は、以下の手順です。

- ピボット解除したい列を選択
※今回は「4月」~「9月」列 - リボン「変換」タブをクリック
- 「列のピボット解除」をクリック
手順①は、連続する列は「Shift」キーを押しながら「←」・「→」キー、離れた列は「Ctrl」キーを押しながら別の列名をクリックで複数列を選択すると効率的。
手順②③は、列の見出し(ヘッダー)で右クリック→「列のピボット解除」をクリックでもOK。
ピボット解除後、必要に応じて「属性」・「値」列の列名を変更すること。
「その他の列のピボット解除」コマンドの使用手順
ピボット解除の対象外としたい列を選択した方が効率的な場合、「その他の列のピボット解除」コマンドを使用しましょう。
おすすめなケース:ピボット解除対象外の列数 < ピボット解除対象の列数
「その他の列のピボット解除」コマンドの場合は、以下の手順です。

- ピボット解除対象外の列を選択
※今回は「社員番号」・「氏名」列 - リボン「変換」タブをクリック
- 「列のピボット解除」の右側の「▼」をクリック
- 「その他の列のピボット解除」をクリック
手順①は、連続する列は「Shift」キーを押しながら「←」・「→」キー、離れた列は「Ctrl」キーを押しながら別の列名をクリックで複数列を選択すると効率的。
手順②~④は、列の見出し(ヘッダー)で右クリック→「その他の列のピボット解除」をクリックでもOK。
ピボット解除後、必要に応じて「属性」・「値」列の列名を変更すること。
「ピボット解除された列」・「ピボット解除された他の列」ステップの変更手順
「列のピボット解除」・「その他の列のピボット解除」コマンドで記録した「ピボット解除された列」・「ピボット解除された他の列」ステップを後から変更する場合、以下の手順で変更しましょう。

- 「ピボット解除された列」・「ピボット解除された他の列」ステップを削除(「×」をクリック)
- 再度「ピボット解除された列」・「ピボット解除された他の列」ステップを記録
手順①のステップ名は、「列のピボット解除」・「その他の列のピボット解除」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_列のピボット解除.xlsx
ブックを開いたら、「月別残業時間(ピボット解除)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。
- ピボット解除対象外の列を選択
※今回は「社員番号」・「氏名」列 - リボン「変換」タブをクリック
- 「列のピボット解除」の右側の「▼」をクリック
- 「その他の列のピボット解除」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
「列のピボット解除」・「その他の列のピボット解除」コマンドを活用することで、Power Queryエディター上で横軸に展開されていた見出し・集計値を2列に変換できます。
クロス集計表→データベース形式へのレイアウト変更は、関数やマクロ(VBA)でも段階的な作業が必要で大変でしたが、パワークエリならマウス操作中心で簡単に自動化できて便利ですよ!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
ご参考になれば幸いですm(_ _)m
具体的には、表の行列を入れ替える「入れ替え」コマンドや、1列の数値データを複数列に変換する「列のピボット」コマンドです。
データソースの表レイアウトに応じて、これらのコマンドをうまく使い分け、希望通りの表レイアウトへ変更しましょう!

コメント Comments
コメント一覧
コメントはありません。
トラックバックURL
https://excel-master.net/data-utilization/data-shaping/layout-change/power-query-unpivot-column/trackback/