ADVERTISEMENT

【Excel】Power Queryで複数ファイル結合後に新しい列が反映されない時の修正手順

【Excel】Power Queryで複数ファイル結合後に新しい列が反映されない時の修正手順
🛡️ 超解決

Power Queryを使って複数のExcelファイルやCSVファイルを結合する業務は、日々のデータ集計で欠かせない操作です。しかし、元のファイルに新しい列を追加したにもかかわらず、Power Queryで作成したクエリの結果にその列が反映されない、というトラブルが頻繁に発生します。この問題は、クエリの更新タイミングや設定、データソースの認識方法など複数の要因が絡むため、原因を正しく切り分けることが重要です。本記事では、新しい列が反映されない原因を体系的に解説し、具体的な修正手順をステップごとに紹介します。

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

  • 最初に見る場所: Power Queryエディタの「プレビュー」と「適用したステップ」の内容を確認してください。新しい列がプレビューに表示されるかどうかが重要です。
  • 切り分けの軸: 問題が「クエリの定義(M言語)」にあるのか、「データソースの更新設定」にあるのか、または「Excelの自動計算・更新設定」にあるのかを切り分けてください。
  • 注意点: 会社PCでは、権限によってPower Queryのプライバシー設定やデータソースの資格情報を変更できない場合があります。管理者に確認せずに設定を変更しないでください。

ADVERTISEMENT

1. なぜ新しい列が反映されないのか?主な原因と背景

Power Queryは、データソースから読み込んだ内容を「クエリ」として保持し、Excelシートに結果を出力します。新しい列を追加しても反映されない原因は、大きく分けて次の3つです。

  • クエリの定義が固定されている: 結合時に「サンプルファイル」から列構成を決定する設定になっていると、後から追加された列は無視されます。
  • データソースのキャッシュが古い: Power Queryは一度読み込んだデータをキャッシュすることがあり、そのキャッシュが更新されないと新しい列が反映されません。
  • データ型変換やフィルターが原因: 列の追加後にデータ型が自動変換される設定や、特定の列だけを抽出するフィルターがかかっていると、新しい列が削除されることがあります。

これらの原因を一つずつ確認し、適切な修正を行いましょう。

1-1. フォルダー結合時の「サンプルファイル」の仕組み

複数ファイルを結合する際、Power Queryは最初のファイル(または指定したサンプルファイル)を基に列構造を決定します。その後、他のファイルの列はサンプルファイルと一致するものだけが取り込まれます。新しい列がサンプルファイルに存在しない場合、その列は自動的に無視されます。この動作は、結合設定の「列の拡張」や「結合の種類」によって変わります。

1-2. プライバシーレベルとデータソースの資格情報

Power Queryにはプライバシーレベルの概念があり、異なるソース(例:フォルダと各ファイル)のデータを結合する際に、キャッシュの扱いが変わることがあります。特に、資格情報が変更されていないと、新しいファイルの内容が正しく読み込まれない可能性があります。

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

2. 基本的な確認手順:更新とプレビューをチェック

まず、以下の手順で現在の状態を確認しましょう。多くのケースでは、単純な「すべて更新」で解決しますが、それでも反映されない場合は次のステップに進みます。

  1. Excelの「データ」タブにある「すべて更新」をクリックします。これにより、すべてのクエリが再実行されます。
  2. 「クエリと接続」ウィンドウを開き、該当のクエリを右クリックして「編集」を選択します。Power Queryエディターが開きます。
  3. Power Queryエディターの右側にある「クエリの設定」ペインで、「適用したステップ」の一番下(最後のステップ)をクリックします。プレビュー画面に最新のデータが表示されるか確認します。
  4. プレビュー画面に新しい列が表示されない場合、「ソース」ステップをクリックして、元のデータが正しく読み込まれているか確認します。
  5. ソースステップでも新しい列がない場合は、データソースが正しく認識されていない可能性があります。その場合は、データソースの設定を再確認します。

もしプレビューには新しい列があるのに、Excelシートに反映されない場合は、「閉じて読み込む」ステップで列が除外されている可能性があります。この場合は、クエリの出力設定を確認してください。

3. 原因別の修正手順

ここでは、主な原因ごとに具体的な修正方法を説明します。まずは「サンプルファイルの再設定」から試すと良いでしょう。多くのケースでこの操作が有効です。

3-1. サンプルファイルの再設定(フォルダー結合の場合)

  1. Power Queryエディターで、左側のクエリ一覧から該当のフォルダー結合クエリを選択します。
  2. 「適用したステップ」の中の「Combine Files」(または「ファイルの結合」)ステップをクリックします。
  3. プレビュー画面の上にある「設定」アイコン(歯車)をクリックします。
  4. 表示されたダイアログで、「サンプルファイル」が現在どのファイルになっているか確認します。新しい列を含むファイルを選択し直します。すべてのファイルをサンプルとして使いたい場合は、ファイル名を指定せずに「最初のファイル」や「ファイルの選択」を変更します。
  5. 「OK」をクリックし、再度「すべて更新」を実行します。

この操作で、新しい列が自動的に認識されるようになります。

3-2. 「Combine Files」関数のカスタマイズ(M言語を直接編集)

より高度な制御が必要な場合、M言語のコードを直接編集して列を強制的に含めることができます。ただし、この操作はPower Queryの知識が必要です。

  1. Power Queryエディターで、「ホーム」タブの「詳細エディター」をクリックします。
  2. 表示されたコードの中から「CombineFiles」や「Table.Combine」といった関数を見つけます。
  3. その関数の引数に「ExtraColumns.AsError」や「Combiner.CombineTextByEachDelimiter」などのオプションが含まれている場合、新しい列を自動的に追加する設定に変更します。
  4. 標準的な修正方法として、Table.Combine(List.Transform(Source, each Table.PromoteHeaders(Excel.Workbook(Web.Contents(...)))))のようなコードの代わりに、より柔軟なTable.Combine(List.Transform(Source, each let ... in ...))を使用します。
  5. 変更後、「完了」をクリックし、エラーがないことを確認してから更新します。

ただし、この方法は誤った編集でクエリが壊れるリスクがあるため、事前にバックアップを取ることをおすすめします。

3-3. プライバシーレベルの確認と変更

Power Queryのプライバシーレベルが原因でキャッシュが古いままになることがあります。

  1. Power Queryエディターで、「ファイル」タブの「オプションと設定」→「クエリオプション」をクリックします。
  2. 「セキュリティ」セクションで「プライバシーレベル」を選択し、「現在のブックのプライバシーレベルを無視する」にチェックを入れます。これにより、すべてのデータソースが統一的に扱われます。
  3. 「OK」をクリックして設定を閉じ、更新を実行します。

注意: この設定は会社のセキュリティポリシーに違反する場合があるので、必ず管理者に確認してから行ってください。

ADVERTISEMENT

4. 比較表:新しい列を追加する際のファイル側の変更とクエリ側の対応

以下の表は、新しい列を追加した後のファイル操作と、それに対するPower Queryの反応を比較したものです。事前にどの対応が必要か把握しておきましょう。

ファイル側の変更 Power Queryの自動的な反応 必要な手動対応
新しい列を追加(すべてのファイルに同じ列名) サンプルファイルにその列がない場合は無視 サンプルファイルを新しい列を含むファイルに変更
新しい列を追加(一部のファイルのみ) その列があるファイルは取得、ないファイルはエラーまたはnull 結合関数をカスタマイズしてすべての列を強制的に含める
既存の列名を変更 古い列名のまま取得される、またはエラー クエリ内の列名参照を更新、またはサンプルファイルを再設定
ファイルのフォルダ構造を変更 データソースのパスが無効になりエラー データソース設定でパスを修正

5. よくある失敗パターンとその対策

実務でよく遭遇する失敗パターンを3つ紹介します。これらのパターンに当てはまる場合は、対策をすぐに試してください。

5-1. 「すべて更新」しても反映されないが、Power Queryエディターでは新しい列が見える

この場合、読み込み先のExcelシートで列が非表示になっているか、クエリの出力設定で列が除外されている可能性があります。「クエリと接続」で該当クエリを右クリックし、「プロパティ」を開いて「読み込みと表示」の設定を確認してください。また、出力列を明示的に選択している場合は、そのリストに新しい列が含まれているか確認します。

5-2. 新しい列を含むファイルを追加したのに、既存のファイルのみの列しか表示されない

これは、サンプルファイルが古いままであることが原因です。前述の「サンプルファイルの再設定」を行ってください。また、フォルダー結合クエリを作成した後に新しいファイルをフォルダに追加した場合、Power Queryはそのファイルを自動的に認識しますが、列構造はサンプルファイルに依存するため、新しい列があるファイルがサンプルに選ばれない限り無視されます。

5-3. クエリを編集して新しい列を追加しようとするとエラーが発生する

クエリ内で列を追加するステップ(例:カスタム列の追加)を手動で実装した場合、その列名が元データに存在しないとエラーになります。この場合は、元データの列名と一致するようにするか、エラー処理を追加します。「try」「otherwise」を使ってエラーを回避する方法もあります。

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

会社のPCでは、以下の設定が変更できない場合があります。その際は、管理者に連絡して対応を依頼してください。

  • プライバシーレベルの無効化: 前述した「現在のブックのプライバシーレベルを無視する」設定は、グループポリシーで禁止されていることがあります。
  • データソースの資格情報: ファイルサーバーやSharePoint上のデータソースにアクセスするための資格情報が期限切れになっていたり、管理者による再設定が必要な場合があります。
  • Power Queryアドインの有効化: 稀に、Power Queryアドイン自体が無効になっているケースがあります。管理者に確認して有効化してもらってください。

7. よくある質問(Q&A)

最後に、読者からよく寄せられる質問とその回答をまとめました。

Q1. 結合したクエリで新しい列を追加するたびに毎回サンプルファイルを再設定する必要がありますか?
A1. はい、新しい列が追加されたファイルをサンプルとして設定しない限り、その列は無視されます。ただし、一度設定を変更すれば、以降はその設定が保存されます。

Q2. すべてのファイルに同じ列名で追加したのに反映されません。どうすればよいですか?
A2. サンプルファイルが古い可能性があります。サンプルファイルを新しい列を含むファイルに変更してください。また、列名にスペルミスや全角半角の違いがないか確認しましょう。

Q3. Power Queryを使わずにExcelの関数で結合している場合はどうなりますか?
A3. この記事はPower Queryのトラブルシューティングです。通常の関数(INDIRECTなど)では、新しい列が自動的に追加されることはありません。手動で関数を修正する必要があります。

Q4. 複数のファイルを結合する時に、新しい列を含むファイルを最初に持ってくれば自動的に認識されますか?
A4. いいえ、必ずしもそうとは限りません。Power Queryは「サンプルファイル」として最初のファイルを使用しますが、その設定は後から変更できます。ただし、ファイルの順番を変えるだけではサンプルファイルは変わりません。

Q5. 結合後、新しい列が表示されたが値が#N/Aになります。
A5. 他のファイルにその列が存在しない場合、該当するファイルの行には#N/Aが表示されます。これを回避するには、結合関数をカスタマイズしてエラーを0や空白に置き換えます。

まとめ

Power Queryで複数ファイル結合後に新しい列が反映されない問題は、多くの場合、サンプルファイルの設定やプライバシー設定が原因です。まずは「すべて更新」とサンプルファイルの再設定を試しましょう。それでも解決しない場合は、プライバシーレベルの変更やM言語のカスタマイズを検討します。会社PCの場合は、管理者の許可を得てから設定を変更するように注意してください。日頃からクエリの動作を理解し、ファイル追加時のルールをチームで共有しておくと、トラブルを未然に防げます。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT