- Power Queryを使用すると、ローカルフォルダまたはクラウドフォルダにある複数のファイルを統合できます。ただし、それらのファイルが同じデータスキーマを共有している必要があります。
- サンプルファイルを使用すると、先頭行の削除やヘッダーの変更など、一括変換を容易に適用できます。
- 列が完全に一致しない場合は制限があり、複雑なケースでは手動での修正やVBAスクリプトの使用が必要になります。
フォルダに散らばった月次または週次レポートがたくさんあると想像してみてください。朝の時間をデータのコピー&ペーストに費やす代わりに、数回クリックするだけですべてを1つのExcelスプレッドシートに統合できるとしたらどうでしょう。まさにここでPower Queryが登場します。Power Queryは、データを扱うすべての人にとって頼りになるツールであり、同じ構造を持つファイルを簡単に統合することを可能にします。
このシステムの最も優れた点は、ローカルPCのフォルダに限定されず、SharePointサイト、Azure Data Lake、Azure Blobストレージからデータを取得できることです。スムーズに動作させるための鍵は、ファイルが同じスキーマ、つまり列が一致していることですが、Power Queryはノイズや不要な行が含まれている場合でも、データをクリーンアップするのに十分な賢さを備えています。
段階的な組み合わせプロセス

データソースに接続すると、最初にファイルシステムビューが表示されます。ここで最も重要な列は「コンテンツ」で、各ドキュメントのバイナリ表現が含まれています。これらのバイナリ値のいずれかをクリックすると、プログラムはそれがCSV、JSON、またはExcelファイルかどうかを判別し、ファイルを開くように試みます。バッチ全体を結合するには、2つの方法があります。直接「結合」ボタンをクリックするか、より細かく処理したい場合は、「データの変換」を選択してファイルリストをフィルタリングしてから(たとえば、特定のフォルダを無視するなど)、結合処理を進めることができます。
マージダイアログボックスを開くと、Power Queryはサンプルファイルを使用して構造を分析します。既定ではリストの最初のファイルが選択されますが、データセットをより適切に表す別のファイルがある場合は変更できます。ここで、エラーのあるファイルをスキップするオプションを選択できます。これは、レポートが破損しているか空の場合に、処理全体が停止するのを防ぐのに役立ちます。
出力管理とデータクレンジング

マージを承認すると、システムは舞台裏でいくつかの技術的な処理を実行します。サンプルクエリとパラメータ化された関数が作成されます。つまり、サンプルファイルに加えた変更は、フォルダ内の他のすべてのファイルに自動的に反映されます。たとえば、CSVファイルに実際のデータの前に不要なヘッダー行が4行ある場合、変換クエリに移動して先頭行を削除するオプションを使用することで、不要なヘッダー行を整理できます。
行をクリーンアップした後は、「最初の行をヘッダーとして使用する」機能を適用することが重要です。この操作を行うと、Power Query は通常、データ型の自動変換ステップを追加することに注意してください。メイン クエリに戻ったときに、列「Column1」が見つからないというエラーが表示されても心配ありません。これは、例で列の名前を変更したため、後続のステップが古い名前を認識しなくなったことが原因です。適用されたステップ ペインからそのエラーのあるステップを削除するだけで、すべて正常に戻ります。
共通の課題と先進的な代替策

人生は必ずしも単純ではなく、完全に一致しないファイルに遭遇することもあります。たとえば、ServiceNowレポートで、一方のヘッダーが「resolved_on」、もう一方が「closed_on」という名前になっている場合、Power Queryは一貫した構造を必要とするため、問題が発生する可能性があります。サンプルファイルが他のファイルと完全に一致しない場合、ツールは一致しないファイルの情報を取りこぼしたり、インポートエラーを発生させたりする可能性があります。
構造が完全に混沌としている場合や、データ量が膨大(Excelで100万行を超える場合など)な場合は、他の選択肢があります。CSVインターフェースを使用するVBAスクリプトを選択するユーザーもいます。これにより、フィールドやレコードの区切り文字がファイルごとに異なっていても、ヘッダーが重複することなくファイルを結合できます。Windowsシェルは非常に高速ですが、埋め込まれた改行の処理に失敗することがよくあります。一方、堅牢なVBAソリューションはRAMに過負荷をかけず、数百万件のレコードを容易に処理できます。

処理を完了するには、Power Queryでデータを結合した後、最終テーブルを読み込む前に、各列に正しいデータ型(日付の場合は日付、収入の場合は通貨など)を割り当てることを忘れないでください。ソース名列をフィルタリングして、フォルダー内のすべてのファイルが正常に処理されたことを確認することで、すべてが正しいことを検証できます。
複数のCSVファイルの結合を自動化する機能により、面倒な手作業からプロフェッショナルなワークフローへと移行できます。これは、データクレンジングにPower Queryの柔軟性を活用したり、構造が互換性がない場合やデータ量がスプレッドシートの制限を超える場合にVBAを利用したりすることで実現できます。