Excelでピボットテーブルのような2次元表(マトリックス)から、一方向の列に並んだリストに分解したいことってたまにあると思います。
個人的に良く直面するのは、調整さんのイベントページでダウンロードできるCSVから出席簿を作るってやつ。
下のブログにあるようなピボットテーブルウィザードを用いて集計し直すやり方では、行タイトルや列タイトル以外のデータにあたる部分は全て数字(足し算できるもの)として取り扱われるので、○や△が並んだ表だとぱっと見上手く行かないように見えてしまいます。
で、それ以外のやり方をYouTubeで見かけたのを元に、自分で分かりやすく手順に落とし直したのをブログに残しておこうと思います。
分解したい表の範囲を選択する
リボンの「データ」→「テーブルまたは範囲から」を実行する
テーブルの作成で、「先頭行をテーブルの見出しとして使用する」にチェックを入れてOKする
Power Query エディターが起動してくる
分解したい列を選んで「列のピボット解除」を実行する。
もしくはタイトル列以外を全部分解するときは、タイトル列を選んでから「その他の列のピボット解除」を実行。
値がある場所だけのリストに分解される
リボンの「閉じて読み込む」を実行。
分解されたデータが別シートに貼り付けられてくる。
後からもう一度Power Queryを実行したい時は
データの分解方法を後から変えたい場合は、右クリックして「テーブル」→「クエリの編集」を実行すると、Power Queryに戻って最初からやり直すことも出来ます。
ちなみにPower QueryはローカルのExcelデータだけでなく、AzureやSharePoint Online等の色んなデータソースからデータを引っぱってきて集計したりマージしたりちょっとしたETLっぽいことも対話的に出来たりします。