Power Queryの「フォルダーから」機能を使って複数のExcelファイルを結合する際、特定のファイルだけを結合対象から除外したいケースがよくあります。しかし、除外設定を誤ると意図しないファイルが含まれたり、逆に必要なファイルが除外されてしまうトラブルが発生します。本記事では、Power Queryで複数ファイル結合を行う際に、対象外ファイルを確実に除外するための確認手順と原因の切り分け方法を解説します。
【要点】この記事で確認すること
- 最初に見る場所: Power Queryエディターの「フィルター行」や「列のフィルター」を使い、ファイル名・拡張子・更新日時などの条件で除外設定が正しく適用されているか確認します。
- 切り分けの軸: 端末側の問題(ファイル名の表記ゆれ、隠しファイル)、アカウント側の問題(アクセス権限不足)、管理設定側の問題(グループポリシーによる制限)の3軸で原因を特定します。
- 注意点: 会社PCではPower Queryの詳細設定(特にプライバシーレベルやフォルダアクセス権限)を勝手に変更せず、管理者に確認してから行うようにしてください。
ADVERTISEMENT
目次
Power Queryで複数ファイル結合する際の基本仕組み
Power Queryで複数ファイルを結合するには、まず「データ」タブから「フォルダーから」を選択し、対象のフォルダを指定します。すると、フォルダ内の全ファイルが一覧として読み込まれ、その後「結合」や「サンプルファイルを指定」などの手順を経てデータが統合されます。このとき、読み込まれたファイル一覧はPower Queryエディター上で「Content」「Name」「Extension」などの列として表示され、これらの列に対してフィルターや条件を適用することで、結合対象から特定のファイルを除外できます。
ただし、単純にフォルダ内の全ファイルを取得する設定では、意図しないファイル(テンポラリファイルやバックアップファイル)が混ざることがあります。そのため、結合前に必ずファイル一覧を確認し、不要なファイルを除外する手順を組み込む必要があります。
対象外ファイルが発生する代表的な原因
Power Queryで結合対象から外れてしまうファイルや、逆に除外したいファイルが含まれてしまう原因はいくつかあります。代表的なものを以下に挙げます。
- ファイル名の表記ゆれ: 除外条件として「ファイル名が特定の文字を含まない」というフィルターを設定した場合、全角半角の違いやスペースの有無で意図しない挙動になります。
- 拡張子の誤認識: Excelファイルであっても、.xls、.xlsx、.xlsm、.csvなど拡張子が異なるファイルが混在している場合、拡張子フィルターを適切に設定しないと一部のファイルが対象外になります。
- サブフォルダの影響: フォルダーからデータを取得する際、デフォルトではサブフォルダは含まれませんが、もし含める設定にしていると、想定外のファイルが入り込むことがあります。
- アクセス権限の問題: 一部のファイルに対して読み取り権限がない場合、そのファイルはエラーとなり結合対象から自動で除外されます。エラー自体は無視する設定もできますが、原因特定が難しくなります。
- 非表示ファイルやシステムファイル: フォルダオプションで非表示ファイルを表示しない設定でも、Power Queryはそれらのファイルを読み込むことがあります。
除外対象ファイルを確認する手順(Power Queryエディターでのフィルター方法)
ここでは、実際にPower Queryエディターを使って、結合対象から特定のファイルを除外するための具体的な手順を説明します。以下の手順は、あらかじめフォルダーからデータを読み込み、「ナビゲーター」画面で「結合」を選択する前の段階を想定しています。
- Excelで「データ」タブ → 「データの取得と変換」グループ → 「フォルダーから」をクリックし、対象フォルダを指定して「開く」を選択します。
- 表示される「ナビゲーター」画面で、該当のフォルダを選択し、下部の「結合」ボタン横のドロップダウンから「データの変換」をクリックしてPower Queryエディターを開きます。
- Power Queryエディターで、ファイル一覧が「Name」「Extension」「Date modified」「Content」などの列で表示されます。まずは「Extension」列のドロップダウンをクリックし、結合したい拡張子(例:.xlsx)のみにチェックを入れて「OK」をクリックします。これで、拡張子が異なるファイル(.xlsや.csvなど)を除外できます。
- 次に、「Name」列のドロップダウンをクリックし、「テキストフィルター」→「次の値を含まない」を選択します。ダイアログボックスに除外したい文字列(例:「temp」「backup」「~$」など)を入力します。複数条件を指定する場合は「詳細フィルター」を使います。
- 必要に応じて「Date modified」列で日付フィルターを適用し、特定の期間以前のファイルを除外することも可能です。フィルター設定後、画面左側の「適用したステップ」に「フィルターされた行」が追加されていることを確認します。
- 最後に「ホーム」タブ → 「閉じて読み込む」でデータをExcelシートに読み込みます。読み込み後、実際のデータに意図しないファイルが含まれていないか、サンプル行を確認します。
この手順で基本的な除外設定は完了ですが、より複雑な条件(例:ファイル名が特定のパターンに一致するものだけを残すなど)が必要な場合は、カスタム列を追加して条件式を記述する方法もあります。
カスタム列を使って除外条件を設定する方法
フィルターだけでは対応しきれない複雑な除外条件(例えば「ファイル名が数字で始まり、かつ拡張子が.xlsxであるものだけを残す」など)は、カスタム列を追加して条件判定を行います。具体的な手順は以下の通りです。
- Power Queryエディターで「列の追加」タブ → 「カスタム列」をクリックします。
- 「新しい列名」に任意の名前(例:「除外フラグ」)を入力し、「カスタム列の式」に以下のようなM言語の式を入力します。
if Text.Contains([Name], "temp") or Text.Contains([Name], "backup") then "除外" else "対象" - この式は、ファイル名に「temp」または「backup」が含まれる場合に「除外」、それ以外は「対象」と判定します。OKをクリックしてカスタム列を追加します。
- 追加されたカスタム列のドロップダウンから「除外」のチェックを外してフィルターし、「対象」行のみを残します。
- 最後に、不要になったカスタム列を削除(列選択して右クリック→「削除」)してから、データを読み込みます。
除外設定の失敗パターンと対処法
除外設定を行っても期待通りに動作しないケースがいくつかあります。代表的な失敗パターンとその対処法を以下にまとめます。
| 失敗パターン | 原因 | 対処法 |
|---|---|---|
| 除外したはずのファイルが結合される | フィルター条件が正しく設定されていない(大文字小文字の区別、部分一致の指定誤り) | M言語のText.Containsはデフォルトで大文字小文字を区別します。Text.Contains([Name], “temp”, Comparer.OrdinalIgnoreCase)とすると区別しなくなります。 |
| 必要なファイルが除外されてしまう | ファイル名に想定外の文字(スペース、ハイフン)が含まれている | フォルダ内のファイル名を事前にリストアップし、正規表現やワイルドカードを使ったフィルターを検討します。 |
| エラーが発生して結合できない | アクセス権限がないファイルや、破損したファイルが含まれている | Power Queryエディターで「エラーの置換」や「エラー行の削除」を行います。または、事前にファイルの存在確認を行います。 |
| サブフォルダのファイルが予期せず含まれる | フォルダーからデータ取得時に「サブフォルダを含める」オプションが有効になっている | フォルダー取得の設定で、「サブフォルダを含める」のチェックを外します。データ取得後に、Folder Path列でフィルターして対象フォルダのみに絞ることも可能です。 |
ADVERTISEMENT
管理者に確認すべき項目
会社のPCでPower Queryを使用する場合、以下の点について管理者に確認しておくとトラブルを未然に防げます。
- フォルダアクセス権限: 結合元のフォルダに対する読み取り権限が適切に付与されているか。特に共有フォルダやOneDrive上のフォルダの場合、権限設定が原因で一部ファイルが読み取れないことがあります。
- グループポリシーによる制限: 組織のポリシーでPower Queryのアドインが無効化されていたり、特定のフォルダへのアクセスが禁止されている場合があります。
- データ接続のセキュリティ設定: Power Queryの「プライバシーレベル」設定が厳しすぎると、フォルダ内のデータが結合時にブロックされる可能性があります。管理者に相談の上で適切なレベルに調整します。
- ファイル命名規則: 除外条件を設定する際に、組織のファイル命名規則を確認し、除外文字列の候補を洗い出しておきます。
よくある質問(FAQ)
Q1. 特定のファイル名(例:「売上_2024.xlsx」)だけを結合対象にしたい場合、どうすればよいですか?
「Name」列のテキストフィルターで「次の値を含む」に「売上」と入力するか、カスタム列でText.StartsWith([Name], “売上”) を使用して条件に合う行だけを残します。複数条件を組み合わせる場合は、andやorを使って式を構築します。
Q2. 結合後に不要なファイルが含まれていることに気づきました。後から除外することはできますか?
Power Queryで作成したクエリは、Excel上で「クエリの編集」からいつでも修正できます。結合後に不要ファイルに気づいた場合は、再度Power Queryエディターを開き、フィルター条件を調整してから「閉じて読み込む」で更新します。すでに読み込まれたシートのデータは更新時に置き換えられます。
Q3. 除外設定を保存して、毎回同じ条件で結合するにはどうすればいいですか?
Power QueryのクエリはExcelブックに保存されます。一度除外設定を行ったクエリは、次回同じフォルダを参照するときにもそのまま適用されます。ただし、フォルダ内のファイル構成が変わった場合は条件を見直す必要があります。
Q4. 大量のファイルがある場合、フィルター処理が遅くなります。高速化する方法はありますか?
フィルター処理の前に、不要な列(Contentなど)を削除すると読み込みが高速化します。また、フォルダーからデータを取得する際に「サブフォルダを含める」をオフにし、ファイル数自体を減らすことも効果的です。
まとめ
Power Queryで複数ファイルを結合する際、対象外ファイルを除外するには、Power Queryエディターのフィルター機能やカスタム列を使った条件設定が有効です。まずは拡張子やファイル名の基本的なフィルターから始め、複雑な条件が必要な場合はM言語のカスタム列を活用します。失敗パターンとして、大文字小文字の区別やサブフォルダの扱いに注意し、事前に組織のファイル命名規則やアクセス権限を確認しておくとスムーズです。除外設定はクエリとして保存されるため、一度正しく設定すれば再利用が可能です。定期的に結合する処理では、この確認手順をワークフローに組み込むことで、データ結合の品質を維持できます。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
