データベースのテーブル名を変更したところ、ExcelのPower Queryクエリが「テーブルが見つかりません」といったエラーで更新できなくなることがあります。これは、Power Queryがデータ取得時に古いテーブル名を参照し続けるために発生します。本記事では、この問題を解決する具体的な手順と、将来的に同じトラブルを防ぐための運用ポイントを解説します。併せて、テーブル名以外の変更(列名の変更や型変換)が原因となるケースや、管理者に確認すべき設定についても触れていきます。
【要点】この記事で確認すること
- 最初に見る場所: Power Queryエディターでクエリの「名前」プロパティと、ソースとなる「テーブル名」が正しいかを確認します。
- 切り分けの軸: エラーが「名前が見つからない」エラーなのか、「アクセス権限」や「接続」の問題なのかを区別します。
- 注意点: 会社PCでは、データベース接続設定を安易に変更すると他のクエリに影響が出る可能性があるため、事前に管理者へ確認することを推奨します。
ADVERTISEMENT
目次
1. なぜテーブル名変更後に更新できなくなるのか
Power Queryは、クエリを作成した時点のテーブル名を「ステップ」として内部に保持しています。データベース側でテーブル名が変更されると、クエリ実行時に「指定されたテーブルは存在しません」というエラーが返ります。これが最も基本的な原因です。
さらに、テーブル名変更に伴い、参照しているデータベースのスキーマ名や接続文字列が変わった場合も同様のエラーが発生します。また、権限の問題や、Power Queryのキャッシュが古い情報を保持している場合も更新に失敗することがあります。
以下に、よく見られるエラーメッセージの例を示します。
- 「テーブル ‘OldTableName’ が見つかりませんでした。」 → テーブル名が変更された典型的なケース。
- 「Expression.Error: The key didn’t match any rows in the table」 → テーブル名変更に加えて列名も変わった可能性。
- 「DataSource.Error: … アクセスが拒否されました」 → 権限や認証情報の問題。
これらのエラーを見ることで、問題の切り分けができます。
2. クエリエディターでテーブル名を修正する手順
最も直接的な解決方法は、Power Queryエディターで参照しているテーブル名を新しい名前に変更することです。以下の手順で実行します。
- Excelで「データ」タブ → 「クエリと接続」をクリックします。
- 表示されたペインで、更新できないクエリを右クリックし、「編集」を選択してPower Queryエディターを開きます。
- 右側の「クエリの設定」ペインにある「適用したステップ」の一覧から、データベース接続を示す最初のステップ(通常は「ソース」または「ナビゲーション」)を選択します。このステップの数式バーに
TableNameなどのテーブル名が表示されていることを確認します。 - 数式バー内の古いテーブル名(例:
"OldTableName")を新しいテーブル名(例:"NewTableName")に直接書き換えます。スキーマ名が含まれている場合は、"Sales.NewTableName"のように完全修飾名にします。 - Enterキーを押すか、数式バー外をクリックして変更を確定します。その後、「ホーム」タブの「閉じて読み込む」で変更を保存し、クエリを更新してエラーが消えたか確認します。
上記の手順で解決しない場合は、接続の詳細設定やパラメーターの変更が必要です。また、M言語で記述されている場合、ステップの内容を直接編集する必要があります。その際は、変更前に元の式をメモ帳などにコピーしておくと安心です。
テーブル名修正時の注意点
- テーブル名が変更されていても、列名が同じであれば、他のステップ(フィルターや列の削除など)はそのまま再利用できます。ただし、列名も変更されている場合は、後続のステップも修正が必要です。
- データベースのスキーマ(例:dbo → sales)が変わった場合も、同様に数式を修正します。
- 複数のクエリが同じテーブルを参照している場合は、それぞれのクエリで修正が必要です。その場合は、共通のパラメーターを使う方法が効率的です(後述)。
3. パラメーター化クエリを使った再発防止策
テーブル名を直接クエリに書き込む代わりに、パラメーターとして外部から指定できるようにすると、テーブル名変更時にクエリ全体を修正する必要がなくなります。Power Queryには「パラメーター」機能があり、これを使うと管理が容易になります。
パラメーターを作成する手順は以下の通りです。
- Power Queryエディターで、「ホーム」タブ → 「パラメーターの管理」→「新しいパラメーター」をクリックします。
- 名前(例:
TargetTableName)、タイプ(テキスト)、現在の値(例:"NewTableName")を入力します。 - クエリのソースステップで、テーブル名を直接記述する代わりに、
Source = Sql.Database(...) & "#(lf)" & "SELECT * FROM " & TargetTableNameのようにパラメーターを参照する式に書き換えます。 - テーブル名が変更されたら、パラメーターの現在の値だけを新しい名前に変更すれば、すべてのクエリが自動的に新しいテーブルを参照します。
この方法は、特に複数のクエリで同じテーブルを使っている場合や、定期的にテーブル名が変更される環境で効果を発揮します。ただし、パラメーターを変更する権限は管理者に限定したほうが安全です。
ADVERTISEMENT
4. テーブル名以外の変更による影響と対応
テーブル名変更に伴い、列名やデータ型が変わっている場合、Power Queryの後続ステップでエラーが発生することがあります。以下の表は、代表的な変更とその影響、対処法をまとめたものです。
| 変更内容 | 発生しうるエラー | 対応方法 |
|---|---|---|
| 列名の変更 | 「列 ‘OldColumn’ が見つかりません」 | 該当するステップで列名を新しい名前に修正する |
| データ型の変更 | 「データ変換エラー」や「型が一致しません」 | 「変更された型」ステップを確認し、新しい型に合わせて再変換する |
| テーブルの削除 | 「テーブルが見つかりません」 | 別のテーブルやビューに差し替えるか、クエリを再作成する |
Power Queryエディターでは、エラーが発生したステップに黄色い警告アイコンが表示されます。該当ステップをクリックし、数式バーで修正することで対応できます。特に列名変更の場合は、後続のすべてのステップでその列を参照している可能性があるため、注意深く確認してください。
5. 管理者に確認すべき設定と権限
Power Queryの更新ができない原因が、テーブル名変更ではなく、アクセス権限やデータベース接続の設定変更にある場合もあります。以下の点を管理者に確認しましょう。
- データベース接続情報の変更: サーバー名やデータベース名が変更されていないか。特に、開発環境から本番環境への移行時に起こりがちです。
- Windows認証またはSQL認証の資格情報: パスワードの有効期限切れやアカウントの無効化が原因でアクセスできない場合があります。
- ファイアウォールやネットワーク設定: データベースサーバーへのアクセスがブロックされていないか。
- Power Queryのプライバシーレベル: データベースとExcelファイル間のプライバシーレベルが適切に設定されていないと、結合などが制限される場合があります(「ファイル」→「オプション」→「現在のブック」→「プライバシー」)。
- 組織のポリシーによるPower Query機能の制限: グループポリシーで特定のデータソースへの接続が禁止されている可能性があります。
これらの確認は、特に会社の管理下にあるPCでは自分だけで変更できないケースが多いため、管理者に依頼する必要があります。
6. よくある質問(FAQ)
Q1. テーブル名を修正したのに、まだエラーが表示されます。
A. テーブル名だけでなく、スキーマ名やデータベース名も変更されていないか確認してください。また、クエリの「適用したステップ」に、テーブル名をハードコードしているステップが複数ある場合は、すべて修正する必要があります。さらに、「ナビゲーション」ステップではなく、カスタムSQLを使用している場合は、SQL文内のテーブル名も書き換えてください。
Q2. テーブル名を変更する権限がなく、管理者に頼めない場合はどうすればいいですか?
A. 管理者に権限を依頼するのが基本ですが、緊急時には、Power Queryで「データの取得」から新しいテーブル名を指定して別のクエリを作成し、古いクエリの代わりに使用する方法があります。ただし、既存のクエリに依存する他のワークシートや分析がある場合は、それらを新しいクエリに差し替える必要があります。
Q3. テーブル名変更後にPower Queryを更新しようとすると「クエリの実行中にエラーが発生しました」とだけ表示されます。
A. 詳細なエラーメッセージを確認するには、Power Queryエディターの「表示」タブ → 「詳細エディター」を使用します。または、クエリと接続ペインで問題のクエリを右クリックし、「最終更新日時」や「エラーの詳細」を表示させて原因を特定します。エラーが複合的な場合、M言語のエラーコード(例:Expression.Error, DataSource.Error)を手がかりに、該当する部分を修正します。
7. まとめ
Power Queryでデータベースのテーブル名変更後に更新できなくなる問題は、主にクエリ内の参照先を新しい名前に修正することで解決できます。まずはPower Queryエディターでソースステップのテーブル名を直接書き換える方法を試してください。再発防止には、テーブル名をパラメーター化する運用が効果的です。また、エラーメッセージの内容から原因を切り分け、必要に応じて管理者にデータベース接続設定や権限を確認しましょう。日頃からクエリの変更履歴をドキュメント化しておくことで、トラブルシューティングがスムーズになります。
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サイズ」に強制リサイズしてから結合する
