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エディタを開くと、これらの列に対してフィルターやカスタム列の追加が可能です。
ファイル名で除外するフィルターの設定方法
除外したい条件はさまざまですが、最も多いのがファイル名に特定の文字列が含まれる場合です。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ファイルを除外する具体的な操作を説明します。
- 「データ」タブ→「データの取得」→「ファイルから」→「フォルダーから」をクリックし、対象フォルダを選択します。
- 「データの変換」をクリックしてPower Queryエディタを開きます。
- 「列の追加」タブ→「カスタム列」をクリックします。
- 新しい列名は任意(例:「除外フラグ」)とし、カスタム列の式に「= not Text.Contains([Name], “_old”)」と入力します。
- 生成された「除外フラグ」列のフィルターアイコンをクリックし、「True」のみを選択します。
- 「ホーム」タブ→「ファイルの結合」→「CSVの結合」を選択(または「バイナリの結合」)して、残ったCSVを統合します。
- 必要に応じて「除外フラグ」などの不要列を削除し、「閉じて読み込む」で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関数を利用する方法を覚えておくと汎用性が高まります。フォルダ内のファイルを整理せずに済むため、元データをそのまま維持できるのも利点です。会社の環境によっては管理者のサポートが必要な場合もあるため、まずは手順を試してから不明点があれば確認しましょう。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
