ADVERTISEMENT

【Excel】Power Queryで一部のCSVだけ除外したい時のフィルター設定

【Excel】Power Queryで一部のCSVだけ除外したい時のフィルター設定
🛡️ 超解決

Power Queryでフォルダ内の複数のCSVファイルを一括取得すると、データの統合が効率的になります。しかし、毎回すべてのファイルが必要なわけではなく、特定のCSVだけを除外したい場面があります。例えば、バックアップ用のファイルや命名規則が異なる旧バージョンのCSVを読み込み対象から外したい場合です。この記事では、Power Queryで一部のCSVファイルを確実に除外するフィルター設定の方法を、具体例とともに解説します。

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

  • 最初に見る場所: Power Queryエディタの「Name」列フィルター、または「カスタム列」の追加機能です。
  • 切り分けの軸: 除外したい条件が「ファイル名に含まれる文字列」「拡張子」「ファイルの更新日時」のどれかを明確にします。
  • 注意点: 会社PCでは管理者によってPower Queryのアドインが制限されている場合があります。また、元のフォルダ構成を変更せずにフィルターで除外するのが無難です。

ADVERTISEMENT

Power QueryでCSVを一括取得する基本

Power Queryで複数のCSVファイルを取得するには、まず「データ」タブから「データの取得」→「ファイルから」→「フォルダーから」を選択します。フォルダを指定すると、各ファイルのメタ情報(名前、拡張子、更新日時など)が一覧表示されます。この段階で「結合」ボタンを押せば、すべてのCSVが自動的に統合されますが、その前にフィルターをかけることで特定のファイルを除外できます。

最初に表示されるテーブルには「Content」「Name」「Extension」などの列が含まれます。「変換データ」をクリックしてPower Queryエディタを開くと、これらの列に対してフィルターやカスタム列の追加が可能です。

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

ファイル名で除外するフィルターの設定方法

除外したい条件はさまざまですが、最も多いのがファイル名に特定の文字列が含まれる場合です。Power QueryエディタのUIだけでは「含まない」フィルターが直接用意されていないため、カスタム列を使ってM言語の関数を利用します。

ファイル名に特定文字列が含まれるファイルを除外する

例えば、フォルダ内に「売上データ2024.csv」「売上データ2024_old.csv」「売上データ2025.csv」があるとします。「_old」が付いたファイルを除外するには、カスタム列で「= not Text.Contains([Name], “_old”)」と入力します。この式は、ファイル名に「_old」が含まれていない場合にTrueを返します。その後、このカスタム列でTrueの行のみフィルターし、不要な列を削除してから結合します。

拡張子が異なる場合の除外

対象フォルダにCSV以外のファイル(.txt、.xlsxなど)が混じっている場合も同様です。「Extension」列で「.csv」だけを残すフィルターをかけます。Power Queryエディタでは「Extension」列のフィルターアイコンから「.csv」を選択するだけで簡単に除外できます。

更新日時やインデックスによる除外

特定の日付より古いファイルを除外したい場合は、「Date modified」列を使ってフィルターを設定します。また、最初の数ファイルだけを取得したい場合などは、「インデックス列」を追加して番号でフィルターする方法もあります。

実際の手順(CSV除外フィルター設定)

以下の手順で、「_old」が付いたCSVファイルを除外する具体的な操作を説明します。

  1. 「データ」タブ→「データの取得」→「ファイルから」→「フォルダーから」をクリックし、対象フォルダを選択します。
  2. 「データの変換」をクリックしてPower Queryエディタを開きます。
  3. 「列の追加」タブ→「カスタム列」をクリックします。
  4. 新しい列名は任意(例:「除外フラグ」)とし、カスタム列の式に「= not Text.Contains([Name], “_old”)」と入力します。
  5. 生成された「除外フラグ」列のフィルターアイコンをクリックし、「True」のみを選択します。
  6. 「ホーム」タブ→「ファイルの結合」→「CSVの結合」を選択(または「バイナリの結合」)して、残ったCSVを統合します。
  7. 必要に応じて「除外フラグ」などの不要列を削除し、「閉じて読み込む」でExcelシートにデータを出力します。

この手順により、「_old」を含むファイルだけを除外したデータが得られます。

ADVERTISEMENT

状況別の比較表

除外条件ごとに適した方法をまとめました。

除外条件 方法 メリット デメリット
特定文字列が含まれるファイル カスタム列 + Text.Contains + not 柔軟な文字列判定が可能 M関数の知識が必要
拡張子が異なるファイル 「Extension」列のフィルター 直感的で簡単 拡張子がCSV以外の場合のみ有効
更新日時が古いファイル 「Date modified」列のフィルター 日付範囲で正確に除外 日付形式に注意
ファイル名の先頭や末尾 Text.StartsWith または Text.EndsWith パターンに合った精密な除外 条件が複数の場合は組み合わせが必要

よくある失敗パターンと対処法

初心者が陥りやすいミスとその解決策を紹介します。

失敗1:大文字小文字の区別「Text.Contains」はデフォルトで大文字小文字を区別しませんが、意図的に区別したい場合はComparer.Ordinalを指定する必要があります。ただし、通常は区別しない方が安全です。

失敗2:フィルターの順番カスタム列を追加した後に「結合」を行う前にフィルターを適用しないと、除外が効きません。必ず手順の順序を守ってください。

失敗3:ワイルドカードの誤用Power Queryのフィルターでは「*」や「?」のワイルドカードは使えません。文字列のパターンマッチにはText.ContainsやText.StartsWithなどのM関数を正しく使いましょう。

失敗4:空白や特殊文字を含むファイル名ファイル名にスペースや全角文字が含まれる場合でも関数は正常に動作しますが、クエリの編集時に予期しないエラーが発生することがあります。その場合は「Text.Trim」などで前処理を追加してください。

管理者に確認すべき設定

会社のPCでPower Queryを使う際、管理者が以下の設定を制限している可能性があります。

  • Power Queryアドインの有効化:Excelの「COMアドイン」でPower Queryが無効になっていないか確認が必要です。
  • フォルダアクセス権限:読み込み元のフォルダにアクセスできない場合は、管理者に共有設定を依頼してください。
  • プライバシーレベルの設定:Power Queryのプライバシーレベルが「なし」になっていると、外部フォルダデータの結合がブロックされることがあります。

これらの設定は管理者以外が変更できない場合が多いため、困ったらIT部門に相談しましょう。

よくある質問(FAQ)

Q1. 複数の条件で除外したい場合(例:「_old」と「backup_」の両方を除外)はどうすれば?
A1. カスタム列の式で「not (Text.Contains([Name], “_old”) or Text.Contains([Name], “backup_”))」のように論理演算子を使います。または、複数のカスタム列を作成して順にフィルターする方法もあります。

Q2. ファイル名の末尾が「.bak」のCSVを除外したい。
A2. 「Text.EndsWith([Name], “.bak”)」を使います。ただし、拡張子が「.bak」なら「Extension」列で「.csv」のみに絞る方が簡単です。

Q3. 除外条件を後から変更するには?
A3. Power Queryエディタで「適用したステップ」の該当するカスタム列やフィルターの設定をダブルクリックして編集できます。毎回データを取得し直さなくてもいいので便利です。

Q4. エラーが発生してクエリが実行できない。
A4. フィルター条件で型の不一致が起きている可能性があります。特に「Date modified」列で日付フィルターを使う場合は、データ型を日付型に変換してからフィルターしてください。

まとめ

Power Queryで一部のCSVファイルを除外するには、ファイル名や拡張子を条件にしたフィルター設定が効果的です。UIだけでは「含まない」フィルターが不足しているため、カスタム列でM関数を利用する方法を覚えておくと汎用性が高まります。フォルダ内のファイルを整理せずに済むため、元データをそのまま維持できるのも利点です。会社の環境によっては管理者のサポートが必要な場合もあるため、まずは手順を試してから不明点があれば確認しましょう。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT