パワークエリでExcelファイルを取り込むとき、複数のシートをまとめて取り込めないかと感じたことはありませんか?
実は、案外簡単にできるものなんです。
題して、「パワークエリで複数シートをまとめて取り込む方法」
今回はこのテーマでお届けします。
この記事でやりたいこと
上の図のようにA社.xlsxというファイルがあり、そこに「2020.01」と「2020.02」というシートがあり、それぞれ同じフォーマットで売上データがあったとします。
これを、パワークエリを使って1シートにまとめてデータベースにします。
では早速見ていきましょう。
パワークエリでの操作
データの取得
まずは、データタブより「データの取得」「ファイルから」「ブックから」を選択します。
次に、シートを選択する画面が開きます。
が、ここではシートを選択せずに、下記のようにフォルダを選択し、「データの変換」をクリックします。
ここまででデータの取得は完了です。次から、取得したデータを加工・変換していきます。
取得したデータの展開
データ取得が完了すると、こんな画面になります。
使うのは「table」となっている列。ここに各シートのデータが格納されているので、これを展開して使います。
その他の列は絶対に必要なわけではないので、削除してもいいのですが、シート名を残したい場合は「Name」の列を残しておきます。
参考までに削除方法を。
消したい列をCtrlを押しながらクリックして選択、「列の削除」をクリックします。
次に各シートのデータを展開してみましょう。
「Date」列タイトルの右端のボタン(下の赤枠)をクリックします。
すると、各シートのデータが展開されました。
では、これをデータベース形式に整形していきます。
展開したデータテーブルの整形
ここから紹介する方法はほんの一例です。
私の場合、こんな感じで整形していきます。
まず、1行目をタイトル行に昇格します。
次に、列中に含まれる各シートのタイトル列が残ったままではデータベースとして使えないので、これを削除します。
まず、明らかに日付であったり数値である列のデータ型を日付や数値に変換します。
すると、列中のタイトル(文字列)などがエラーになるので、その列を選択した状態で、「行の削除」から「エラーの削除」をクリックします。
これで列の中に含まれていたタイトル行がすべて削除されます。
ちなみに、これはフィルタ機能を使ってチェックを外すことでも対応できます。
しかし、型変更で各シートの列名をエラー表示して削除するのには理由があって、もしシートごとに列名が違ってもこの方法だとまとめて削除できるため、個人的にはこの方法をお勧めします。
最後にシート名が入っている列のタイトルを「シート名」などに変更しておけば分かりやすいですね。
ここまでの作業で出来上がったのがこちら。
これで分析しやすいデータベースの形に整えることができました。
最後に、「閉じて読み込む」のボタンからエクセルに張り付けるなりして完成です。
まとめ
いかがだったでしょうか。
複数シートがあっても、案外簡単に取り込めることが分かっていただけたかと思います。
次回、これが複数ファイルになってもできるのか?についてまとめる予定です。
最後までお読みいただきありがとうございました。
データ整形について、詳しく知りたい方はこちらの本がおすすめです。