CSV ファイルを結合する

Power Query では、特定のデータ ソースから複数のファイルを結合できます。 この記事では、結合するファイルが CSV ファイルである場合のエクスペリエンスについて説明します。 詳細については、「ファイルの結合の概要」を参照してください。

ヒント

この記事で使用されているサンプル ファイルをこのダウンロード リンクからダウンロードすると、この例に沿って進めることができます。 これらのファイルは、ローカル フォルダー、SharePoint フォルダー、Azure Blob Storage、Azure Data Lake Storage、ファイル システム ビューを提供するその他のデータ ソースなど、任意のデータ ソースに配置できます。

わかりやすくするために、この記事の例ではフォルダー コネクタを使用します。 詳細については、「フォルダー」を参照してください。

使用されるサンプル ファイルについて

ファイルを結合するには、すべてが同じ構造と同じ拡張子を持っている必要があります。 この例で使用されているファイルはすべて、同じ構造と拡張子 (.csv) を持っています。

2019 年の月ごとに 12 個の CSV ファイルがあります。 次の図は、1 月のファイルの最初の 15 行を示しています。

Sample CSV file for January 2019 showing the header section and the rest of the data, all separated by commas.

行数はファイルによって異なりますが、どのファイルも最初の 4 行はヘッダー セクションです。 5 行目には列ヘッダーが含まれています。テーブルのデータは 6 行目から始まり、後続のすべての行が続きます。

目標は、12 ファイルすべてを 1 つのテーブルに結合することです。 この結合テーブルは、テーブルの上部にヘッダー行があります。ヘッダー行の後の個別の列には、ソース名、日付、国、ユニット、年度全体の収益データが含まれています。

Sample final combined table.

[テーブルのプレビュー]

結合するファイルをホストするフォルダー (この例では、そのフォルダーの名前は CSV ファイル) に接続すると、左上隅にフォルダー パスが表示される [テーブル プレビュー] ダイアログ ボックスが表示されます。 データ プレビューには、ファイル システム ビューが表示されます。

Table preview for the file system view.

この例では、 [結合] を選択します。

注意

別の状況では、 [データの変換] を選択して、ファイルを結合する前にデータをさらにフィルター処理して変換することができます。 [結合] を選択する方法は、結合するファイルだけがフォルダーに含まれている場合にのみお勧めします。

[ファイルの結合] ダイアログ ボックス

テーブルのプレビューで [結合] を選択すると、 [ファイルの結合] ダイアログ ボックスが表示されます。

Combine files dialog box.

注意

Power Query では、見つかった最初のファイルに基づいて、使用するコネクタが自動的に検出されます。 CSV コネクタの詳細については、「テキスト/CSV」を参照してください。

この例では、すべて既定の設定のままにします ( [ファイルの例][最初のファイル] に設定し、 [元のファイル][区切り記号][データ型検出] は既定値です)。

次に、右下隅にある [データの変換] を選択して、出力クエリに移動します。

出力クエリ

[ファイルの結合] ダイアログ ボックスで [データの変換] を選択すると、ローカル フォルダーへの接続から最初に作成したクエリの Power Query エディターに戻ります。 出力クエリでは、一番左の列にソース ファイル名が表示され、残りの列には各ソース ファイルのデータが表示されます。

Output query for combined files without additional transformations.

ただし、データは正しい形式ではありません。 結合する前に、各ファイルから先頭の 4 行を削除する必要があります。 各ファイルを結合する前にこの変更を行う場合は、画面の左側にある [クエリ] ウィンドウで [サンプル ファイルの変換] クエリを選択します。

[サンプル ファイルの変換] クエリを変更する

この [サンプル ファイルの変換] クエリでは、 [Date] 列の値は、年-月-日 (YYYY-MM-DD) 形式の 4 月のデータを示しています。 April 2019.csv は、テーブル プレビューに表示される最初のファイルです。

Table showing the data columns from April 2019, including the header section in the first four rows and the headings in the fifth row.

次に、新しい変換セットを適用してデータをクリーンアップする必要があります。 各変換は、各ファイルのデータを結合する前にフォルダー内のすべてのファイルに適用されるヘルパー クエリ グループ内の関数に自動的に変換されます。

[サンプル ファイルの変換] クエリに追加する必要がある変換は次のとおりです。

  1. [上位の行の削除] : この操作を実行するには、テーブルの左上隅にあるテーブル アイコン メニューを選択し、 [上位の行の削除] を選択します。

    Remove top rows on the table menu.

    [上位の行の削除] ダイアログ ボックスで「4」と入力し、 [OK] を選択します。

    Remove top rows dialog box.

    [OK] を選択すると、テーブルの上位 4 行が表示されなくなります。

    Sample query with removed rows.

  2. [先頭の行を見出しとして使用] : テーブル アイコンを再度選択し、 [先頭の行を見出しとして使用] を選択します。

    Use first row as headers icon.

    その操作の結果により、テーブルの最初の行が新しい列見出しに昇格します。

    Sample table promoted headers.

この操作が完了すると、既定の Power Query では、列のデータ型が自動的に検出され、新しい [変更された列タイプ] ステップが追加されます。

出力クエリの変更

CSV ファイル クエリに戻ると、最後の手順で "テーブルの列 'Column1' が見つかりませんでした" というエラーが表示されます。このエラーの原因は、クエリの以前の状態が Column1 という名前の列に対して操作を実行していたからです。 しかしながら、 [サンプル ファイルの変換] クエリに加えた変更により、この列は存在しなくなりました。 詳細については、「Power Query でのエラーの処理」を参照してください。

Output query with step-level error.

[適用されたステップ] ウィンドウからクエリのこの最後のステップを削除するには、ステップの名前の左側にある [X] 削除アイコンを選択します。 このステップを削除すると、クエリに正しい結果が表示されます。

Combine files without error step.

ただし、ファイルから生成された列 (Date、Country、Units、Revenue) に特定のデータ型が割り当てられていないことに注意してください。 次の表を使用して、各列に正しいデータ型を割り当てます。

列名 データ型
Date Date
Text
ユニット 整数
収益 Currency

各列のデータ型を定義すると、テーブルを読み込む準備が整います。

Sample final combined table.

注意

列のデータ型を定義または変更する方法については、「データ型」を参照してください。

検証

すべてのファイルが結合済みであることを確認するには、 [Source.Name] 列見出しのフィルター アイコンを選択すると、結合されたすべてのファイルの名前が表示されます。 "リストが完全でない可能性があります" という警告が表示された場合は、メニューの下部にある [さらに読み込む] を選択して、列に使用可能な値を表示します。

Incomplete list of the files that have been combined.

[さらに読み込む] を選択すると、使用可能なすべてのファイル名が表示されます。

Complete list of the files that have been combined.