

クロス集計された表をデータソースにして、Power Queryエディター上で他の整形ステップも登録したいです。
ただ、クロス集計表の横軸の列に対して、新たな列を追加等が難しいですが、何か良い方法はありますか?

その場合、一度クロス集計表をデータベース形式にしてから他のステップを登録すると良いですよ!
具体的には、Power Queryエディター上の「列のピボット解除」・「その他の列のピボット解除」コマンドが有効です!
では、詳細を解説していきますね。
解説動画:【パワークエリ#8】レイアウト変更テクニック3選 – 使いにくい表レイアウトを使いやすく整形・加工する作業を自動化する(列のピボット解除、列のピボット、入れ替え)
この記事の内容は下記の動画でも解説しています。
コメント欄の「列のピボット解除」の部分をクリックすると該当の解説へジャンプできますよ!
はじめに
この記事はパワークエリの概要を把握していることが前提です。
パワークエリの概要については、以下の記事をご参照ください。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
「列のピボット解除」・「その他の列のピボット解除」の使いどころ
「列のピボット解除」・「その他の列のピボット解除」コマンドは、クエリの新規作成ステップのうち、STEP2の「取得データを整形/加工(Transform)」に該当する機能です。
クエリ内の一連の整形作業の中で、クロス集計表→データベース形式へ表レイアウトを変更したい場合に「列のピボット解除」・「その他の列のピボット解除」コマンドを使いましょう。
以下の表は、縦軸が「社員」、横軸が「月」のクロス集計表(集計値は残業時間)。
「列のピボット解除」・「その他の列のピボット解除」コマンドを活用することで、任意の複数列を「属性」・「値」の2列に変換することが可能です。
使用イメージ
「4月」~「9月」列を対象に「列のピボット解除」コマンドを使用し、月と残業時間を2列に変換したイメージが以下です。
Power Queryエディター上で列をピボット解除したステップを登録できました。
「列のピボット解除」コマンドの場合、デフォルトのステップ名は「ピボット解除された列」になる(クエリ内で2つ目以降の「ピボット解除された列」ステップは連番が付加)。
「その他の列のピボット解除」コマンドの場合、デフォルトのステップ名は「ピボット解除された他の列」。
後は、クエリ新規作成ステップのSTEP2で必要な他ステップを登録したら、STEP3を行いましょう。
これにより、クエリに記録した「列のピボット解除」・「その他の列のピボット解除」コマンドのステップを自動化できます。
「列のピボット解除」・「その他の列のピボット解除」コマンドのステップ登録後、ピボット解除対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は、後述の「登録したステップの変更手順」を参照)。
クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。
パワークエリ(Power Query)に関してのコンテンツです。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
ステップ登録手順
「列のピボット解除」・「その他の列のピボット解除」コマンドのステップの登録手順は同じ要領ですが、ピボット解除の対象を選択した列にするか、選択した列以外にするかが相違点です。
データソースの構成に応じて、ピボット解除の対象の列と対象外の列のどちらを選択した方が効率かで使い分けましょう。
「列のピボット解除」コマンド
ピボット解除の対象列を選択したい場合、「列のピボット解除」コマンドが効率的です。
おすすめなケース:ピボット解除対象の列数 < ピボット解除対象外の列数
「列のピボット解除」コマンドの場合、以下の手順となります。
- ピボット解除したい列を選択
※今回は「4月」~「9月」列 - リボン「変換」タブをクリック
- 「列のピボット解除」をクリック
手順①は、連続する列は「Shift」キーを押しながら「←」・「→」キー、離れた列は「Ctrl」キーを押しながら別の列名をクリックで複数列を選択すると効率的。
手順②③は、列の見出し(ヘッダー)で右クリック→「列のピボット解除」をクリックでもOK。
ピボット解除後、必要に応じて「属性」・「値」列の列名を変更すること。
「その他の列のピボット解除」コマンド
ピボット解除の対象外の列を選択したい場合、「その他の列のピボット解除」コマンドが効率的です。
おすすめなケース:ピボット解除対象外の列数 < ピボット解除対象の列数
「その他の列のピボット解除」コマンドの場合、以下の手順となります。
- ピボット解除対象外の列を選択
※今回は「社員番号」・「氏名」列 - リボン「変換」タブをクリック
- 「列のピボット解除」の右の「▼」をクリック
- 「その他の列のピボット解除」をクリック
手順①は、連続する列は「Shift」キーを押しながら「←」・「→」キー、離れた列は「Ctrl」キーを押しながら別の列名をクリックで複数列を選択すると効率的。
手順②③は、列の見出し(ヘッダー)で右クリック→「列のピボット解除」をクリックでもOK。
ピボット解除後、必要に応じて「属性」・「値」列の列名を変更すること。
登録したステップの変更手順
「列のピボット解除」・「その他の列のピボット解除」コマンドで登録したステップを後から変更する場合、の対象列を後から変更する場合、一旦既存のステップを削除し、「列のピボット解除」・「その他の列のピボット解除」コマンドのステップを再登録すればOKです。
具体的な手順は以下の通りです。
- 「ピボット解除された列」 or 「ピボット解除された他の列」ステップを削除(「×」をクリック)
- 再度「列のピボット解除」・「その他の列のピボット解除」コマンドのステップ登録手順を実行
手順①のステップ名は、「列のピボット解除」・「その他の列のピボット解除」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_列のピボット解除.xlsx
サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。
ブックを開いたら、「月別残業時間(ピボット解除)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。
- ピボット解除したい列を選択
※今回は「4月」~「9月」列 - リボン「変換」タブをクリック
- 「列のピボット解除」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
「列のピボット解除」・「その他の列のピボット解除」コマンドは、任意の複数列を「属性」・「値」の2列に変換できます。
クロス集計表→データベース形式へのレイアウト変更は、関数やマクロ(VBA)でも段階的な作業が必要で大変でしたが、パワークエリならマウス操作中心で簡単に自動化できて便利ですよ!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m

「列のピボット解除」・「その他の列のピボット解除」コマンドに慣れたら、表レイアウトの変更に役立つ他のコマンドも覚えることをおすすめします。
具体的には、表の行列を入れ替える「入れ替え」コマンドや、1列の数値を複数列へ変換する「列のピボット」コマンドです。
データソースの表レイアウトに応じて、これらのコマンドをうまく使い分け、希望通りの表レイアウトへ変更しましょう!