CSV ファイルを結合する
Power Query では、特定のデータ ソースから複数のファイルを結合できます。 この記事では、結合するファイルが CSV ファイルである場合のエクスペリエンスのしくみについて説明します。 詳細情報: ファイルの結合の概要
アドバイス
このダウンロード リンク から、この記事で使用されているサンプル ファイルダウンロードすることで、この例に従うことができます。 これらのファイルは、ローカル フォルダー、SharePoint フォルダー、Azure Blob Storage、Azure Data Lake Storage、ファイル システム ビューを提供するその他のデータ ソースなど、選択したデータ ソースに配置できます。
わかりやすくするために、この記事の例ではフォルダー コネクタを使用します。 詳細: フォルダー
使用されるサンプル ファイルについて
ファイルを結合するには、すべて同じ構造と同じ拡張子を持つことが不可欠です。 この例で使用されるすべてのファイルは、同じ構造と拡張子 (.csv) を持ちます。
2019 年の各月に 1 つずつ、12 個の CSV ファイルがあります。 次の図は、1 月のファイルの最初の 15 行を示しています。
行数はファイルによって異なりますが、すべてのファイルには最初の 4 行にヘッダー セクションがあります。 5 行目には列ヘッダーがあり、テーブルのデータは 6 行目から始まり、後続のすべての行に続きます。
目標は、12 個すべてのファイルを 1 つのテーブルに結合することです。 この結合テーブルには、テーブルの上部にあるヘッダー行が含まれており、ヘッダー行の後の個別の列に、年全体のソース名、日付、国、単位、および収益データが含まれます。
テーブルプレビュー
結合するファイルをホストするフォルダー (この例では、そのフォルダーの名前は CSV ファイル ) に接続すると、左上隅にフォルダー パスが表示される [テーブル プレビュー] ダイアログ ボックスが表示されます。 データ プレビューには、ファイル システム ビューが表示されます。
この例では、[結合] を選択します。 Excel または Power Query Desktop の場合は、[データの結合と変換] を選択します。
手記
別の状況においては、データ変換 を選択し、ファイルを結合する前にデータをさらにフィルタリングして変換することができます。 結合 を選択することは、結合するファイルのみがフォルダーに含まれていることが確実な場合にのみ推奨されます。
[ファイルの結合] ダイアログ ボックス
テーブルプレビューで「結合」を選択すると、「ファイル結合」ダイアログボックスが表示されます。
手記
Power Query は、リスト内の最初のファイルに基づいて、使用するコネクタを自動的に検出します。 CSV コネクタの詳細については、「テキスト/CSV」を参照してください。
この例では、すべての既定の設定をそのままにします(例ファイル に設定された 最初のファイル、そして ファイルの配信元、区切り記号、および データ型検出の既定値)。
次 右下隅にある [データ の変換] を選択して、出力クエリに移動します。
出力クエリ
[ファイルの結合] ダイアログ ボックスで [データの変換] を選択すると、ローカル フォルダーへの接続から最初に作成したクエリの Power Query エディターに戻ります。 出力クエリには、左端の列にソース ファイル名と、残りの列の各ソース ファイルのデータが含まれるようになりました。
ただし、データが正しい形式ではありません。 各ファイルを結合する前に、上位 4 行を各ファイルから削除する必要があります。 各ファイルを結合する前にこの変更を行うには、画面の左側にある クエリ ペインで、サンプル ファイルの変換 クエリを選択します。
サンプル ファイル変換クエリを変更する
この 変換サンプル ファイル クエリでは、Date 列の値は、データが年月 (YYYY-MM-DD) 形式の 4 月のデータであることを示します。 4 月 2019.csv は、テーブル プレビューに表示される最初のファイルです。
次に、新しい変換セットを適用してデータをクリーンアップする必要があります。 各変換は、各ファイルのデータを結合する前に、フォルダー内のすべてのファイルに適用されるグループ ヘルパー クエリ内の関数に自動的に変換されます。
クエリ 変換サンプル ファイルに追加する必要がある変換は次のとおりです。
上の行を削除する: この操作を実行するには、テーブルの左上隅にあるテーブル アイコン メニューを選択し、上部の行を削除を選択します。
[先頭行 削除] ダイアログ ボックスで、「4」と入力し、その後、[OK] を選択します。
[OK] 選択すると、テーブルに上位 4 行が表示されなくなります。
先頭行をヘッダーとして使用: テーブル アイコンをもう一度選択し、[先頭行をヘッダーとして使用 ] を選択します。
その操作の結果、テーブルの最初の行が新しい列ヘッダーに昇格します。
この操作が完了すると、Power Query は既定で列のデータ型を自動的に検出し、新しい 変更された列の種類 ステップを追加しようとします。
出力クエリの変更
Power Query Desktop で CSV ファイル クエリに戻ると、最後の手順で "テーブルの列 'Column1' が見つかりませんでした" というエラーが表示されます。Power Query Online で CSV ファイル クエリに戻ると、前に最初の 4 行を削除し、ヘッダーとして最初の行を使用するために行った変更はテーブルに適用されません。 Power Query Online で、[ホーム] タブから [ 更新] を選択します。画面が更新されると、同じエラー メッセージが表示されます。
このエラーの原因は、クエリの以前の状態が Column1 という名前列に対して操作を実行していたからです。 ただし、変換サンプル ファイル クエリに加えられた変更により、この列は存在しなくなりました。 詳細については、「Power Query でのエラーの処理」を参照してください。
クエリのこの最後のステップは、[適用 ステップ] ペインから、ステップの名前の左側にある [X 削除] アイコンを選択して削除できます。 この手順を削除すると、クエリに正しい結果が表示されます。
ただし、ファイルから派生した列 (Date、Country、Units、Revenue) には、特定のデータ型が割り当てされていないことに注意してください。 次の表を使用して、各列に適切なデータ型を割り当てます。
列名 | データ型 |
---|---|
日付 | 日付 |
国 | テキスト |
単位 | 整数 |
収入 | 通貨 |
各列のデータ型を定義したら、テーブルを読み込む準備ができました。
検証
すべてのファイルが結合されていることを検証するには、Source.Name 列見出しのフィルター アイコンを選択すると、結合されたすべてのファイル名が表示されます。 "一覧が不完全である可能性があります" という警告が表示された場合は、メニューの下部にある [さらに を読み込む] を選択して、列に使用可能な値をさらに表示します。
[さらに読み込む] を選択すると、使用可能なすべてのファイル名が表示されます。