ADVERTISEMENT

【Excel】Power Queryでファイル名に日付が入るCSVを結合する時の確認ポイント

【Excel】Power Queryでファイル名に日付が入るCSVを結合する時の確認ポイント
🛡️ 超解決

Power Queryを使って複数のCSVファイルを結合する場面は、日次や月次で出力されるデータを集計する際によくあります。特にファイル名に日付が含まれている場合、その日付情報をデータとして活用したいと考える方は多いでしょう。しかし、ファイル名の形式が統一されていなかったり、日付の区切り文字が異なっていたりすると、Power Queryの変換処理で思わぬエラーが発生することがあります。本記事では、ファイル名に日付が入ったCSVをPower Queryで結合する際の確認ポイントを、具体例を交えて解説します。

【要点】この記事で確認すること

  • 最初に見る場所: CSVファイルが保存されているフォルダのパスと、ファイル名の命名ルール(日付の位置や区切り文字)。
  • 切り分けの軸: ファイル名の日付形式が統一されているかどうか、Power Queryの「サンプルファイル」パラメータの動作、日付のデータ型変換が正しく行われているか。
  • 注意点: 会社PCのセキュリティポリシーによりPower Queryのプライバシーレベルが制限されている場合、結合時に警告が出ることがあります。管理者の許可なく設定を変更しないでください。

ADVERTISEMENT

なぜファイル名に日付があるCSVの結合で問題が起きるのか

Power Queryは「フォルダーから」データを取得する際、フォルダ内の全ファイルを一覧化し、その中から「サンプルファイル」と呼ばれる1つのファイルを自動選択して変換のテンプレートを作成します。このとき、ファイル名に含まれる日付部分は単なる文字列として認識されるため、日付として扱いたい場合は後から変換が必要です。問題は、ファイル名の日付形式がサンプルファイルと他のファイルで異なる場合や、日付区切り文字が混在している場合に発生します。例えば「20250401.csv」「2024-04-01.csv」「2024/04/01.csv」が混在していると、Power Queryの自動変換が想定通りに動かず、エラーや誤ったデータが出力されます。また、Power Queryのプライバシーレベルが厳格に設定されていると、フォルダーとファイルの結合時に「この組み合わせはプライバシーレベルによりブロックされました」という警告が出ることもあります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

事前確認: フォルダ構成とファイル名ルールの統一

まず、結合するCSVファイルが格納されているフォルダの構成と、ファイル名の命名ルールを確認してください。以下の点をチェックします。

  • すべてのファイルが同じフォルダに直接置かれているか(サブフォルダがある場合は別途設定が必要)。
  • ファイル名に含まれる日付の位置が一定か(例:先頭、末尾、アンダースコアの後)。
  • 日付の区切り文字が統一されているか(ハイフン、スラッシュ、なしなど)。
  • ファイル名の拡張子がすべて「.csv」で統一されているか。
  • ファイル名に日付以外のバリエーション(連番やバージョン番号など)が含まれていないか。

これらの確認ができていないと、Power Queryが自動的に生成する変換ロジックが一部のファイルでしか機能せず、結合結果に欠落や重複が生じます。特に、ファイル名の日付部分を抽出して新しい列として追加する際に、形式の違いが原因でエラーが発生しやすくなります。

Power Queryでの結合手順と日付抽出の実践

ここからは、実際の操作手順を説明します。以下の手順は、ExcelのPower Queryエディターで行います。

  1. Excelの「データ」タブから「データの取得と変換」グループの「フォルダーから」をクリックし、CSVが入っているフォルダを選択します。
  2. フォルダの内容がプレビューされたら、「データの変換」をクリックしてPower Queryエディターを開きます。
  3. 最初のクエリにはフォルダ内のファイル一覧が表示されます。「Content」「Name」「Extension」などの列が作成されます。
  4. 「Name」列を右クリックし、「列の追加」→「範囲」→「区切り記号の後」や「区切り記号の前」を使って日付部分を抽出します。例えばファイル名が「data_20250401.csv」の場合、「_」の後を指定すると「20250401.csv」が抽出され、さらに拡張子を削除します。
  5. 抽出した文字列を「変換」メニューから「日付」に変更します。このとき、元の文字列の形式がPower Queryで解釈できるもの(例:yyyyMMdd、yyyy-MM-dd)でなければ、変換エラーになります。
  6. エラーが発生した場合は、抽出後の文字列を「日付に変換」ではなく「日付の解析」や「ロケールの指定」を試してください。また、「変換」タブの「書式」→「日付」に直接変換するのではなく、「列の追加」タブの「日付」→「日付のみ」を使う方法もあります。
  7. 変換が完了したら、結合のための「列の追加」→「カスタム列」で「= Table.Combine({…})」を使わずに、Power Queryの標準機能「ファイルの結合」を利用します。各ファイルのCSVデータを展開する場合は、「Content」列のアイコンをクリックし、サンプルファイルの変換を編集します。

手順5の日付変換で失敗するケースを避けるため、事前にすべてのファイル名が同じ形式であることを確認してください。もし形式が混在している場合は、後述の失敗パターンと対処法を参照してください。

ADVERTISEMENT

日付情報を正しく取得するための変換設定

Power Queryでファイル名から日付を抽出する際、変換設定は以下のポイントに注意します。

サンプルファイルの選定と変換の一致

Power Queryは最初に開いたサンプルファイル(通常、フォルダ内の最初のファイル)を基に変換手順を自動生成します。そのため、サンプルファイルが最も一般的な形式であることを確認してください。もしサンプルファイルだけ異なる形式(例:区切り文字がスラッシュ)だと、他のファイルの変換時にエラーになります。その場合は、Power Queryエディターで「パラメーターの管理」から「サンプルファイル」を変更するか、変換ロジックを手動で修正します。

日付のデータ型とロケール

抽出した日付文字列を日付型に変換する際、Excelの地域設定が影響する場合があります。例えば「2024-04-01」は多くのロケールで日付として認識されますが、「04-01-2024」は月と日が入れ替わる可能性があります。また、ファイル名が「2024年4月1日」のように日本語表記の場合、ロケールを「ja-JP」に指定する必要があります。変換時に「日付の解析」機能を使い、ロケールを明示的に指定すると安全です。

プライバシーレベルの確認

会社のセキュリティポリシーでPower Queryのプライバシーレベルが「組織」または「プライベート」に設定されている場合、フォルダーから取得したファイルと他のデータソースを結合しようとするとブロックされることがあります。この場合は、「ファイル」→「オプションと設定」→「クエリオプション」→「プライバシー」で「プライバシーレベルを無視する」にチェックを入れる方法もありますが、会社のポリシーに反する可能性があるため、必ず管理者に確認してください。

失敗パターンと対処法

実際に発生しやすい失敗パターンを表にまとめました。

失敗パターン 原因 対処法
日付変換でエラー(データが赤く表示) ファイル名の日付形式がサンプルファイルと異なる(例:一部のファイルだけ区切り文字あり) すべてのファイル名を統一するよう運用ルールを変更するか、Power QueryのM関数を使ってエラー処理(try…otherwise)を追加
結合後にデータが重複している 同じ日付のファイルが複数存在する、またはサブフォルダが含まれている 「Name」列で重複を確認し、フィルターで除外。またはフォルダ構成をフラットに変更
プライバシー警告が表示される Power Queryのプライバシーレベルが原因 管理者に連絡し、「プライバシーレベルを無視する」設定の可否を確認。またはクエリ内でデータソースを統合
ファイル名から日付を抽出する列の値がすべて同じ Power Queryがサンプルファイルのパラメータを使ってすべてのファイル名を固定値と見なしている 「パラメーターの管理」でサンプルファイルの選択を解除し、動的にする設定に変更
結合後のデータに列不足が発生 一部のCSVファイルで列数が異なる(例:ヘッダー行がない) すべてのCSVファイルの構造を統一し、ヘッダー行を同じにする。Power Queryで「列の追加」から欠落列を補完

これらの失敗パターンは、ファイル名の日付形式だけでなく、CSVの内部構造にも注意が必要です。特に、日付変換エラーは最も頻繁に発生するため、まずはファイル名の形式を統一する運用ルールを徹底することが有効です。

管理者に確認すべき設定項目

会社のPCでPower Queryを使用する場合、以下の設定について管理者に確認してください。

  • Power Queryのプライバシーレベル設定:組織全体で変更可能かどうか。
  • フォルダへのアクセス権限:結合対象のフォルダに読み取り権限があるか。
  • Excelのバージョン:Power Queryの機能が制限されている古いバージョン(2016以前)の可能性。
  • 外部データ接続の許可:VBAや外部ファイルの読み込みがグループポリシーで禁止されていないか。

管理者と連携することで、不要なトラブルを回避できます。特にプライバシーレベルの警告は、エラー原因の特定が難しいため、事前に確認しておくとスムーズです。

よくある質問(FAQ)

  • Q: ファイル名の日付形式がバラバラでも結合できますか?
    A: 可能ですが、Power QueryのM言語でエラーハンドリングを記述する必要があります。運用上は形式を統一することを推奨します。
  • Q: サブフォルダ内のCSVもまとめて結合したいのですが。
    A: フォルダ選択時に「サブフォルダを含める」オプションを有効にしてください。ただし、ファイル名が重複する可能性があるため注意が必要です。
  • Q: 結合した後にファイル名の日付列が文字列のままです。
    A: 列のデータ型が「テキスト」になっている可能性があります。「ホーム」タブの「データ型」で「日付」に変更してください。ただし、すべての行が日付として解釈できるデータである必要があります。

まとめ

Power Queryでファイル名に日付が含まれるCSVを結合する際は、ファイル名の形式統一とサンプルファイルの選択が最も重要な確認ポイントです。日付抽出の変換設定を適切に行わなければ、データ欠落やエラーの原因になります。また、会社のプライバシーレベル設定にも注意し、管理者と相談しながら進めてください。これらのポイントを押さえることで、手間のかかる手作業から解放され、効率的なデータ集計が可能になります。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT