ファイルの結合の概要
Power Query を使用して、同じスキーマを持つ複数のファイルを単一の論理テーブルに結合することができます。
この機能は、同じフォルダーにあるすべてのファイルを結合する場合に便利です。 たとえば、会社のすべての発注書を含む月次ファイルが入ったフォルダーがある場合、これらのファイルを結合して注文を 1 つのビューに統合できます。
次のような (ただし、これらに限定されない) さまざまなソースからのファイルを扱うことができます。
- ローカル フォルダー
- SharePoint サイト
- Azure Blob Storage
- Azure Data Lake Storage (Gen1 と Gen2)
これらのソースを扱っていると、一般にファイル システム ビューと呼ばれる同じテーブル スキーマをこれらが共有していることに気付くでしょう。 次のスクリーンショットは、ファイル システム ビューの例を示しています。
ファイル システム ビューでは、[コンテンツ] 列に各ファイルのバイナリ表現が含まれます。
Note
使用可能なフィールドのいずれかを使用して、ファイル システム ビューのファイルの一覧をフィルター処理できます。 このビューをフィルター処理して、結合する必要があるファイルのみを表示することをお勧めします。たとえば、[拡張子] や [フォルダー パス] などのフィールドをフィルター処理します。 詳細については、「フォルダー」を参照してください。
[コンテンツ] 列で [バイナリ] 値のいずれかを選択すると、その特定のファイルに至る一連のナビゲーション ステップが自動的に作成されます。 Power Query では、Text/CSV、Excel、JSON、または XML などの使用可能なコネクタのいずれかを使用してバイナリの解釈を試みます。
ファイルの結合は、以下の段階で実行されます。
[テーブルのプレビュー]
前述のコネクタのいずれかを使用してデータ ソースに接続すると、テーブルのプレビューが開きます。 フォルダー内のすべてのファイルを結合することが明らかな場合は、画面の右下隅にある [結合] を選択します。
または、[データの変換] を選択して Power Query エディターにアクセスし、ファイルの一覧のサブセットを作成することもできます (たとえば、フォルダー パス列のフィルターを使用して、特定のサブフォルダーのファイルのみを含めます)。 次に、バイナリを含む列を [コンテンツ] 列で選択してから、次のいずれかを選択してファイルを結合します。
[ファイルの結合] ダイアログ
[結合] または [ファイルの結合] コマンドを選択すると、[ファイルの結合] ダイアログが開き、次のアクションが実行されます。
- Power Query は、ファイルの例 (既定では一覧の最初のファイル) を分析し、そのファイルを開くために使用する正しいファイル コネクタを決定します。
- ダイアログは、そのファイルの例に直接接続する場合とまったく同じようなファイル コネクタ エクスペリエンスが提供されます。
- 別のファイルをファイルの例に使用する場合、[ファイルの例] ドロップダウン メニューから選択できます。
- 省略可能: [エラーのあるファイルをスキップ] を選択すると、エラーが発生したファイルを最終出力から除外できます。
次の画像では、Power Query が最初のファイルのファイル名拡張子を .csv と検出したため、[テキスト/CSV] コネクタを使用してファイルを解釈しています。
結合されたファイルの出力
[ファイルの結合] プロセスが終了した後、以下のアクションが Power Query で自動的に実行されます。
単一のファイルに必要なすべての抽出手順を実行するクエリの例を作成します。 [ファイルの結合] ダイアログでファイルの例として選ばれたファイルが使用されます。
[クエリ] ペインで、このクエリの例は "変換サンプル ファイル" という名前です。
ファイル/バイナリ入力をクエリの例にパラメーター化する関数クエリを作成します。 クエリの例と関数クエリはリンクされており、クエリの例を変更すると関数クエリに反映されます。
これらのクエリは [ヘルパー クエリ] グループに一覧表示されます。
"関数クエリ" を、入力バイナリを含む元のクエリ ("フォルダー" クエリなど) に適用します。 したがって、各行のバイナリ入力に関数クエリが適用された後、結果として得られるデータ抽出が最上位レベルの列として展開されます。
"変換元ファイル" をプレフィックス、初期クエリをサフィックスにして新しいグループを作成し、これらの結合されたファイルをそのグループに作成するために使用されるすべてのコンポーネントを整理します。
(列が同じであるなど) ファイルの種類と構造が同じであれば、特定のフォルダー内のすべてのファイルを簡単に結合できます。 自動的に生成されるクエリの例を修正して、追加の変換または抽出手順を適用することもできます。他の関数クエリの手順を変更したり追加作成したりする必要はありません。
Note
クエリの例の内部でステップを修正すると、クエリで各バイナリに適用される関数を変更できます。 クエリの例は関数にリンクされているため、クエリの例に加えた変更は関数クエリに反映されます。
列名または列のデータ型に影響を及ぼす変更がある場合は、出力クエリの最後のステップを必ずチェックしてください。 "列の型を変更" ステップを追加すると、ステップレベルのエラーが発生してテーブルを視覚化できなくなる可能性があります。 詳細情報: エラーの処理