【エクセル パワークエリ】列数が異なるCSVやExcelファイルをフォルダから一括取得する方法【Excel PowerQuery】
まず、Excelのパワークエリを使って、フォルダ内のCSVファイルを結合する基本的な方法が分からない場合は、こちらの記事をご覧ください。
■やりたいこと
フォルダの中にピボット形式、つまりクロス集計で横展開されていて、列数がバラバラなCSVファイルやExcelファイルがあるとき、
テーブルをピボット解除し、データベース形式に変換したうえで全てのファイルを縦に結合したい。
つまり、フォルダからすべてのファイルを取得して、こんな感じのデータテーブルに結合したい。
■問題となる点
パワークエリには、フォルダからファイルを一括取得しデータを結合できる非常に便利な機能がありますが、これを使うには条件があります。
それは、取得するデータの列構成が全てのファイルで同じであることです。
つまり、結合する全てのファイルの列数が、このように揃っていなければいけません。
ところが、フォルダの中にあるCSVファイルの列数が、ファイルによって異なる場合は、どうなるでしょうか?
フォルダの中に3つのCSVファイルがあります。
これを、通常の方法でフォルダから全てのCSVファイルをパワークエリで一括取込してみます。
ご覧のように、3つのCSVファイルは縦に連結されますが、1~2列目しか取り込まれません。
この時点で、そんな予感はありましたが・・・
これは、パワークエリがファイルを取り込む際に、列数を判断する一番最初のCSVファイルに、列が2つしかないために起こってしまいます。
このままでは、ほしい形の結合データは全く得られていません。
しかし、今行った手順に少し手を加えるだけで、ピボット展開されたCSVファイルをデータベース形式に変換したうえで、すべてのデータを結合する方法があります。
これから、順を追って、解決に至る方法を説明していきます。
■解決のヒント
よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️