![見出し画像](https://assets.st-note.com/production/uploads/images/37096995/rectangle_large_type_2_df4a9371944edd8f8ba75d977e0d6c4a.png?width=1200)
【エクセル パワークエリ】列数が異なるCSVやExcelファイルをフォルダから一括取得する方法【Excel PowerQuery】
![](https://assets.st-note.com/img/1695041790892-LgdrA5YEMP.png?width=1200)
まず、Excelのパワークエリを使って、フォルダ内のCSVファイルを結合する基本的な方法が分からない場合は、こちらの記事をご覧ください。
![](https://assets.st-note.com/img/1665486455192-ElhSLcfjB4.png?width=1200)
■やりたいこと
フォルダの中にピボット形式、つまりクロス集計で横展開されていて、列数がバラバラなCSVファイルやExcelファイルがあるとき、
テーブルをピボット解除し、データベース形式に変換したうえで全てのファイルを縦に結合したい。
つまり、フォルダからすべてのファイルを取得して、こんな感じのデータテーブルに結合したい。
![画像3](https://assets.st-note.com/production/uploads/images/37098792/picture_pc_5b4515698847b6d921a7743b26f55eec.png?width=1200)
■問題となる点
パワークエリには、フォルダからファイルを一括取得しデータを結合できる非常に便利な機能がありますが、これを使うには条件があります。
それは、取得するデータの列構成が全てのファイルで同じであることです。
つまり、結合する全てのファイルの列数が、このように揃っていなければいけません。
![画像3](https://assets.st-note.com/production/uploads/images/37098552/picture_pc_d729bc021e9d3401c28705ecbf08711c.png?width=1200)
ところが、フォルダの中にあるCSVファイルの列数が、ファイルによって異なる場合は、どうなるでしょうか?
![画像3](https://assets.st-note.com/production/uploads/images/37098634/picture_pc_e449fb4c3411005db59d7c99f7c240f9.png?width=1200)
フォルダの中に3つのCSVファイルがあります。
![画像4](https://assets.st-note.com/production/uploads/images/37098870/picture_pc_77acdba869ce7e0422487dbbac783cff.png)
![画像6](https://assets.st-note.com/production/uploads/images/37099042/picture_pc_98c9efda9c64f9a7153694be4d3c0f47.png)
![画像6](https://assets.st-note.com/production/uploads/images/37099050/picture_pc_0f563a19b0d49d7e1dd89a452269486e.png)
![画像7](https://assets.st-note.com/production/uploads/images/37099066/picture_pc_8becee725d0232c1c632bf1b88bb61a0.png)
これを、通常の方法でフォルダから全てのCSVファイルをパワークエリで一括取込してみます。
![画像8](https://assets.st-note.com/production/uploads/images/37099230/picture_pc_80191671416ef83102b9cfb3732f490a.png)
![画像9](https://assets.st-note.com/production/uploads/images/37099240/picture_pc_2d69be426fb37482f0e2f1fb378054de.png?width=1200)
![画像10](https://assets.st-note.com/production/uploads/images/37099279/picture_pc_6401935ef932e1a0d28f7a5db4641f23.png?width=1200)
![画像28](https://assets.st-note.com/production/uploads/images/37105508/picture_pc_e6b571c313e7ba6dc88ccc14bdee0490.png)
![画像12](https://assets.st-note.com/production/uploads/images/37099304/picture_pc_7dc2d4a481b146b47b44dbea314db15f.png)
![画像14](https://assets.st-note.com/production/uploads/images/37099695/picture_pc_31b83ac229c1779090831814ef8d83ac.png?width=1200)
![画像28](https://assets.st-note.com/production/uploads/images/37105604/picture_pc_05aa9cf999eeb546af836066777c6560.png?width=1200)
ご覧のように、3つのCSVファイルは縦に連結されますが、1~2列目しか取り込まれません。
この時点で、そんな予感はありましたが・・・
![画像15](https://assets.st-note.com/production/uploads/images/37099798/picture_pc_24c46050149f7e9fd17533a209b58bec.png?width=1200)
これは、パワークエリがファイルを取り込む際に、列数を判断する一番最初のCSVファイルに、列が2つしかないために起こってしまいます。
![画像17](https://assets.st-note.com/production/uploads/images/37100291/picture_pc_f7ed56bacdc5a60f5e9195fc8ffa123c.png)
![画像17](https://assets.st-note.com/production/uploads/images/37100449/picture_pc_37d0ce1f0fc4bb9e1d49bfedff57c049.png)
このままでは、ほしい形の結合データは全く得られていません。
しかし、今行った手順に少し手を加えるだけで、ピボット展開されたCSVファイルをデータベース形式に変換したうえで、すべてのデータを結合する方法があります。
これから、順を追って、解決に至る方法を説明していきます。
■解決のヒント
よければサポートしていただけると嬉しいです😀 有用な記事や動画を制作していけるように頑張ります❗️