見出し画像

【エクセル パワークエリ】列数が異なるCSVやExcelファイルをフォルダから一括取得する方法【Excel PowerQuery】


★Excelブックを整形して結合する手順★

★CSVファイルを整形して結合する手順★



まず、Excelのパワークエリを使って、フォルダ内のCSVファイルを結合する基本的な方法が分からない場合は、こちらの記事をご覧ください。



動画で学ぶExcelパワークエリ・パワーピボット


■やりたいこと


フォルダの中にピボット形式、つまりクロス集計で横展開されていて、列数がバラバラなCSVファイルやExcelファイルがあるとき、

テーブルをピボット解除し、データベース形式に変換したうえで全てのファイルを縦に結合したい。


つまり、フォルダからすべてのファイルを取得して、こんな感じのデータテーブルに結合したい。

画像3



■問題となる点


パワークエリには、フォルダからファイルを一括取得しデータを結合できる非常に便利な機能がありますが、これを使うには条件があります。


それは、取得するデータの列構成が全てのファイルで同じであることです。


つまり、結合する全てのファイルの列数が、このように揃っていなければいけません。

画像3



ところが、フォルダの中にあるCSVファイルの列数が、ファイルによって異なる場合は、どうなるでしょうか?

画像3



フォルダの中に3つのCSVファイルがあります。

画像4
画像6
画像6
画像7



これを、通常の方法でフォルダから全てのCSVファイルをパワークエリで一括取込してみます。

画像8


画像9


画像10


画像28


画像12


画像14


画像28


ご覧のように、3つのCSVファイルは縦に連結されますが、1~2列目しか取り込まれません。

この時点で、そんな予感はありましたが・・・

画像15


これは、パワークエリがファイルを取り込む際に、列数を判断する一番最初のCSVファイルに、列が2つしかないために起こってしまいます。

画像17
画像17


このままでは、ほしい形の結合データは全く得られていません。

しかし、今行った手順に少し手を加えるだけで、ピボット展開されたCSVファイルをデータベース形式に変換したうえで、すべてのデータを結合する方法があります。

これから、順を追って、解決に至る方法を説明していきます。



■解決のヒント


ここから先は

2,267字 / 34画像
この記事のみ ¥ 500

よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️