以前に一回やったんですが、もう少し手軽にできないかとやってみました。複数の CSVファイルを、なるべく手間をかけずに結合して読み込んでみます。

指定フォルダに接続する
単純に読み込んで結合するだけなら、実はそんなに大変でもないです。ひとまずフォルダコネクタを使ってファイル情報テーブルを呼び出します。
[データの取得]→[ファイルから]→[フォルダーから]
すると「参照」ダイアログが開きますので、フォルダを指定して[開く]をクリックします。
CSVファイルが保存されているフォルダを指定して[開く] →[データの変換]
「データの変換」をクリックすると、Power Queryエディターが開きます。
ここからはエディタでの操作になります。
CSVファイルを縦に結合する式を入力する
とはいえ、やることは新規のステップを一つ追加するだけです。
右ペインの「適用したステップ」で、
一番最後のステップ(今回は「ソース」)を右クリック
→「後にステップの挿入」
面倒なら数式バーの「fx」ボタンを押すだけでもいいです。
ステップを挿入したら、数式バーに下記のコードを貼り付けます。「★」と「☆」のところは、適宜修正してください。
= Table.Combine(Table.AddColumn(ソース, "x", each [
csvインポート = Csv.Document([Content], [
Delimiter=",",
Columns=★,
Encoding=☆,
QuoteStyle=QuoteStyle.None
]),
ヘッダーに昇格 = Table.PromoteHeaders(csvインポート)
][ヘッダーに昇格])[x])/code>
「★」に、CSVファイルの「列数」を入力(「Columns=★, 」自体を省略しても問題なし)
「☆」に、「エンコード(Shift-JISなら『932』、UTF-8なら『65001』)」を入力
これで CSVファイルの列名がなんであっても、読み込みできます。
実のところ、Excelファイル(xlxファイル)でもやることはほとんど変わりません。単純には「Csv.Document(……)」のところが「Excel.Workbook(……)」に代わるんですが、ブックの場合「シート名が同じかどうか/シートはいくつあって何個目なのか/空白行や空白列はあるのか」など、不確定要素が増えますので今回はパスしました。
おまけ:ファイル名列を追加したい場合
もしファイル名列を追加したい場合は、下記のようにします。
= Table.Combine(Table.AddColumn(ソース, "x", each [
csvインポート = Csv.Document([Content], [
Delimiter=",",
Columns=★,
Encoding=☆,
QuoteStyle=QuoteStyle.None
]),
ヘッダーに昇格 = Table.PromoteHeaders(csvインポート),
ファイル名列の追加 = Table.AddColumn(
ヘッダーに昇格, "ファイル名", (x)=> [Name]
)
][ファイル名列の追加])[x])

これでファイル名列が追加されます。


