Power Queryを使用して、1 つのフォルダーに格納されている同じスキーマを持つ複数のファイルを 1 つのテーブルに結合します。 たとえば、月ごとに複数の部署の予算ブックを結合する場合、列は同じですが、行数と値の数は各ブックで異なります。 設定したら、インポートした 1 つのデータ ソースと同様に追加の変換を適用し、 データを更新 して毎月の結果を表示できます。
メモ このトピックでは、フォルダーからファイルを結合する方法について説明します。 SharePoint、Azure Blob Storage、Azure Data Lake Storageに格納されているファイルを結合することもできます。 プロセスは似ています。
始める前に
シンプルに保つ:
- 結合するすべてのファイルが、不要なファイルを含まない専用フォルダーに含まれていることを確認します。 それ以外の場合、フォルダー内のすべてのファイルと選択したサブフォルダーが、結合するデータに含まれます。
- 各ファイルには、一貫性のある列ヘッダー、データ型、列の数を含む同じスキーマが必要です。 列は、列名で一致する順序と同じ順序である必要はありません。
- 可能であれば、JSON ファイル、Excel ブック、Access データベースなど、複数のデータ オブジェクトを持つデータ ソースに関連しないデータ オブジェクトは避けてください。
テキスト、CSV、または XML ファイルからインポートする
これらの各ファイルは単純なパターンに従い、各ファイル内のデータのテーブルは 1 つだけです。
[ Data>Get Data>From File>From Folder] を選択します。 [ 参照 ] ダイアログ ボックスが表示されます。
結合するファイルを含むフォルダーを見つけます。
フォルダー内のファイルの一覧が[ <][フォルダー パス> ] ダイアログ ボックスに表示されます。 必要なすべてのファイルが一覧表示されていることを確認します。
ダイアログ ボックスの下部にあるコマンドのいずれかを選択します (例: Combine>Combine & Load)。 「すべてのコマンドについて」セクションで説明されているその他 のコマンドがあります。
[結合] コマンドを選択すると、[Filesの結合] ダイアログ ボックスが表示されます。 ファイルの設定を変更するには、[ サンプル ファイル] ボックスから各ファイルを選択し、必要に応じて [ファイルの配信元]、[ 区切り記号]、[ データ型の検出] を設定します。 ダイアログ ボックスの下部にある [ エラーのあるファイルをスキップ する] チェック ボックスをオンまたはオフにすることもできます。
[OK] を選択します。
結果
Power Queryは、各ファイルのデータをワークシートに統合するためのクエリを自動的に作成します。 作成されるクエリ ステップと列は、選択したコマンドによって異なります。 詳細については、「 すべてのクエリについて」セクションを参照してください。
JSON からのインポート
[ Data>Get Data>From File>From Folder] を選択します。 [ 参照 ] ダイアログ ボックスが表示されます。
結合するファイルを含むフォルダーを見つけます。
フォルダー内のファイルの一覧が[ <][フォルダー パス> ] ダイアログ ボックスに表示されます。 必要なすべてのファイルが一覧表示されていることを確認します。
ダイアログ ボックスの下部にあるコマンドのいずれかを選択します (例: Combine>Combine & Transform)。 「すべてのコマンドについて」セクションで説明されているその他 のコマンドがあります。
Power Query エディターが表示されます。
[値] 列は構造化 リスト 列です。 [列の展開]
を選択し、[新しい行に展開] を選択します。
Value 列が構造化 レコード 列になりました。 [列の
を選択します。 ドロップダウン ダイアログ ボックスが表示されます。
すべての列を選択したままにします。 [プレフィックスとして元の列名を使用する] ボックスをオフチェック場合があります。 [OK] を選択します。
データ値を含むすべての列を選択します。 [ ホーム] を選択し、[ 列の削除] の横にある矢印を選択し、[ その他の列の削除] を選択します。
[ ホーム>閉じる & 読み込み] を選択します。
結果
Power Queryは、各ファイルのデータをワークシートに統合するためのクエリを自動的に作成します。 作成されるクエリ ステップと列は、選択したコマンドによって異なります。 詳細については、「 すべてのクエリについて」セクションを参照してください。
Excel または Access からインポートする
これらの各データ ソースには、インポートする複数のオブジェクトを含めることができます。 Excel ブックには、複数のワークシート、Excel テーブル、または名前付き範囲を含めることができます。 Access データベースには、複数のテーブルとクエリを含めることができます。
[ Data>Get Data>From File>From Folder] を選択します。 [ 参照 ] ダイアログ ボックスが表示されます。
結合するファイルを含むフォルダーを見つけます。
フォルダー内のファイルの一覧が[ <][フォルダー パス> ] ダイアログ ボックスに表示されます。 必要なすべてのファイルが一覧表示されていることを確認します。
ダイアログ ボックスの下部にあるコマンドのいずれかを選択します (例: Combine>Combine & Load)。 「すべてのコマンドについて」セクションで説明されているその他 のコマンドがあります。
[Filesの結合] ダイアログ ボックスで、次の手順を実行します。
- [ サンプル ファイル ] ボックスで、クエリの作成に使用するサンプル データとして使用するファイルを選択します。 オブジェクトを選択することも、1 つのオブジェクトだけを選択することもできません。 ただし、複数を選択することはできません。
- 多数のオブジェクトがある場合は、[ 検索 ] ボックスを使用して、オブジェクトまたは [表示オプション] を [ 更新 ] ボタンと共に見つけてリストをフィルター処理します。
- ダイアログ ボックスの下部にある [ エラーのあるファイルをスキップ する] チェック ボックスをオンまたはオフにします。
[OK] を選択します。
結果
Power Queryは、各ファイルのデータをワークシートに統合するためのクエリを自動的に作成します。 作成されるクエリ ステップと列は、選択したコマンドによって異なります。 詳細については、「 すべてのクエリについて」セクションを参照してください。
[Filesの結合] コマンドを使用する
柔軟性を高めるために、[Filesの結合] コマンドを使用して、Power Query エディター内のファイルを明示的に結合できます。 たとえば、ソース フォルダーにファイルの種類とサブフォルダーが混在しており、同じファイルの種類とスキーマを持つ特定のファイルをターゲットにしたいが、他のファイルをターゲットにしたくないとします。 これにより、パフォーマンスが向上し、変換が簡略化されます。
[ Data>Get Data>From File>From Folder] を選択します。 [ 参照 ] ダイアログ ボックスが表示されます。
結合するファイルを含むフォルダーを見つけて、[ 開く] を選択します。
フォルダーとサブフォルダー内のすべてのファイルの一覧が [ <Folder path> ] ダイアログ ボックスに表示されます。 必要なすべてのファイルが一覧表示されていることを確認します。
下部にある [ データの変換] を選択します。 Power Query エディターが開き、フォルダー内のすべてのファイルとサブフォルダーが表示されます。
目的のファイルを選択するには、拡張機能やフォルダー パスなどの列をフィルター処理します。
ファイルを 1 つのテーブルに結合するには、各バイナリ (通常は最初の列) を含む [コンテンツ] 列を選択し、[ホーム][結合] Files>選択します。 [Filesの結合] ダイアログ ボックスが表示されます。
Power Queryは、適切なコネクタを使用して一致する列を識別するために、既定ではリスト内の最初のファイルであるサンプル ファイルを分析します。
サンプル ファイルに別のファイルを使用するには、[ サンプル ファイル ] ドロップダウン リストからファイルを選択します。
必要に応じて、下部にある [ エラーのあるファイルをスキップ する] を選択して、それらのファイルを結果から除外します。
[OK] を選択します。
結果
Power Queryは、各ファイルのデータをワークシートに統合するためのクエリを自動的に作成します。 作成されるクエリ ステップと列は、選択したコマンドによって異なります。 詳細については、「 すべてのクエリについて」セクションを参照してください。
すべてのコマンドについて
選択できるコマンドがいくつかあり、それぞれに異なる目的があります。
- データの結合と変換すべてのファイルをクエリと結合し、Power Query エディターを起動するには、[結合]、[組み合わせ]、[Combine>]、[データの変換] の順に選択します。
- 結合と読み込み[サンプル ファイル] ダイアログ ボックスを表示するには、クエリを作成し、ワークシートに読み込むには、[結合]、[組み合わせ]>、[組み合わせ][組み合わせ][組み合わせ]、[読み込み] の順に選択します。
- 結合と読み込み[サンプル ファイル] ダイアログ ボックスを表示するには、クエリを作成し、[インポート] ダイアログ ボックスを表示し、[結合]、[組み合わせ]>、[組み合わせ][組み合わせ]、[読み込み] の順に選択します。
- 負荷 1 つのステップでクエリを作成し、ワークシートに読み込むには、[ 読み込み>Load] を選択します。
- 読み込み対象 1 つの手順でクエリを作成し、[ インポート ] ダイアログ ボックスを表示するには、[ 読み込み>読み込み先] を選択します。
- データの変換1 つの手順でクエリを作成し、Power Query エディターを起動するには、[データの変換] を選択します。
すべてのクエリについて
ただし、ファイルを結合すると、[ヘルパー クエリ] グループの下の [ クエリ ] ウィンドウにいくつかのサポート クエリが作成されます。
- Power Queryは、サンプル クエリに基づいて "サンプル ファイル" クエリを作成します。
- "ファイルの変換" 関数クエリでは、"Parameter1" クエリを使用して、各ファイル (またはバイナリ) を "サンプル ファイル" クエリへの入力として指定します。 このクエリでは、ファイルの内容を含む Content 列も作成され、構造化 レコード 列が自動的に展開され、列データが結果に追加されます。 "ファイルの変換" クエリと "サンプル ファイル" クエリがリンクされているため、"サンプル ファイル" クエリの変更が "ファイルの変換" クエリに反映されます。
- 最終的な結果を含むクエリは、"その他のクエリ" グループにあります。 既定では、ファイルをインポートしたフォルダーの名前が付けられます。
さらに調査するには、各クエリを右クリックし、[ 編集] を選択して各クエリ ステップを調べ、クエリがどのように連携しているかを確認します。