【Excel】別ブック参照が遅いときの対処:リンク整理とPower Queryの使い分け

【Excel】別ブック参照が遅いときの対処:リンク整理とPower Queryの使い分け
🛡️ 超解決

別ブックを参照するExcelが遅いときは、外部リンクを一括で解除する前に、何に時間がかかっているかを分けます。ファイルを開く処理、参照元からの更新、数式の再計算は別です。リンクが多いことに加え、ネットワーク、参照範囲、複雑な数式、参照元の状態も影響します。

少数の値を連動させるなら通常の外部参照が適し、大きな一覧を一定の時点で取り込むならPower Queryが候補になります。すべてを同じ方法へ変えるのではなく、必要な更新頻度と、更新を担当する人を決めてから設計します。変更はコピーしたブックで試し、元の数式を残してください。

ADVERTISEMENT

1. 遅い場面と参照元を先に記録する

「重い」だけでは変更の効果を比較できません。開いて操作できるまで、リンク更新が完了するまで、セル変更後の計算が終わるまでを分けて測ります。変更前後で同じ端末、同じ参照元、同じデータ量にそろえ、複数回の結果を記録します。

次に参照元のファイル名、保存場所、担当者、更新頻度を一覧にします。月次確定値なのか、毎朝取り込む商品一覧なのか、開いている間も変わる試算値なのかで、必要な接続の残し方が異なります。古い月のブックを経由して最新のブックを見るような、多段の参照も確認します。

外部参照の数式があるからといって、一セルごとに必ず認証や通信が発生するわけではありません。また参照元を編集すれば、どの端末の集計も常時最新になるという意味でもありません。保存値やリンク更新設定、開いているブックの状態が関係するため、表示の鮮度も調べます。

同じ集計を参照元が開いた状態と閉じた状態で比べると、原因を絞れることがあります。ただし実務ブックの同時編集を避け、保存済みの検証用コピーで試します。リンク更新を止めて速く開けても、古い値を表示しているだけなら改善完了とはいえません。

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

2. 必要な一覧をPower Queryで取り込む

日々の商品マスターを一度取り込み、その表を多数の数式から使う例を考えます。「マスター.xlsx」のテーブル「商品一覧」にはコードと単価があり、商品Aが100、商品Bが200とします。集計ブック側には読み込み専用の「取込」シートを用意します。

外部マスターの単価をPower Queryで集計ブックの取込表へ読み込み、内部計算へ渡す経路。元の単価を100から110へ変更して保存・更新すると、数量3の金額は300から330になる。
元ファイルの保存と取り込みの更新を経て、内部の集計へ反映します。再計算だけでは外部データの取得を代替しません。
  1. 参照元の担当者と、読み込む範囲・列・更新時点を確認し、元ファイルを保存します。
  2. Windows版Excelの[データ]→[データの取得]→[ファイルから]→[Excelブックから]を選びます。
  3. 元ファイルを指定し、ナビゲーターで「商品一覧」を選びます。不要なシートをまとめて取り込まないようにします。
  4. [データの変換]で列やデータ型を確認します。コードの先頭0が必要なら文字列として保持します。
  5. [閉じて読み込む]または読み込み先の指定から、集計ブックの新しいシートへテーブルとして読み込みます。

メニューや利用できる接続先はExcelの版・OS・契約によって異なります。まず手元の[データ]タブで使用できる機能を確認してください。組織の共有先では、正規の権限と指定された接続方法を使い、接続のために公開範囲を広げないようにします。

集計式を変更する前に、取り込んだ表の商品A=100、商品B=200を元データと照合します。行数、重複コード、空欄、型も確認します。コードを探す数式はこの内部テーブルへ向け、数行ずつ旧結果と新結果を並べて比較すると移行時の誤りを見つけやすくなります。

取り込み先テーブルの値を手入力で直すと、更新時にその変更が失われることがあります。訂正は参照元で行うか、読み込み結果とは別の補正表として管理します。見せたくないからと取込シートを隠すだけでは、アクセス制御にはなりません。

3. 更新のタイミングを決めて速さと鮮度を確認する

Power Queryで読み込んだ表は、参照元の変更を常時監視する表ではありません。[データ]の更新操作や接続の更新設定に従って取り込み直します。数式を再計算するF9と、外部データを取得する更新操作を同じものとして扱わないでください。

テストでは元ファイルの商品Aを100から110へ変更して保存し、集計ブックを更新します。更新の終了を確認し、取込表のAが110、Bが200のままかを見ます。数量3の商品Aを計算するなら、旧300から新330へ変わることも確認します。その後は元ファイルを100へ戻して保存し、再度更新します。

方法 向いている更新と注意
外部参照数式 少数の値の連動。参照先とリンク更新の管理が必要
Power Query 一覧をまとめて取得。更新完了時点のデータを使う
値で保存 確定時点の記録。元データの変更には追従しない

どれが最速かは一律には決まりません。取り込み行数や変換処理が多ければPower Queryの更新にも時間がかかり、ブックの容量も増えます。必要な列と行に絞り、開く時間だけでなく、更新にかかる時間と更新後の計算時間も比較しましょう。

更新中のまま提出したり、更新に失敗したのに前回の値を最新値として扱ったりしないよう、元ファイルの更新日と取り込み完了を確認します。TODAYで今日の日付を表示するだけでは、取り込みが成功した証拠にはなりません。

4. 使っていない外部リンクを探して整理する

現在のMicrosoft 365などでは[データ]タブの[ブックのリンク]から参照元を確認できます。版によっては従来の[リンクの編集]が表示されます。まず元ブックを開く、参照セルを探す、参照先を変更する機能で、残すべきリンクかを確認します。

セルの数式にないリンクが残る場合は、[名前の管理]の定義名、図形やテキストボックス、グラフのタイトルと系列も調べます。Ctrl+Fの検索対象をブック、検索場所を数式にして「.xl」を探す方法もありますが、これだけですべてのリンクを見つけられるわけではありません。

リンク元が移動しただけで、今後も更新が必要なら[リンクの解除]ではなく参照先の変更を検討します。同名の別年度ファイルへ間違ってつながないよう、表の見出しや対象期間まで確認してください。名前を削除すると、内部の数式でもその名前を使っている場合に影響が出ます。

Power Queryの接続と、セル数式のブック間リンクも別物です。外部リンクを一つ解除しても、クエリやほかの参照がすべてなくなるわけではありません。警告を消すことだけを目標にせず、どこから必要な値を取得しているかを追える状態にします。

5. リンク解除や値固定は更新不要の範囲だけに行う

リンク解除は、その参照元を使う数式を現在の値へ置き換える操作です。Microsoftは元に戻せない操作として案内しています。実行前に別名のバックアップを保存し、リンク元、対象の数式、現在の計算結果が正しいことを確認してください。

例えば外部参照を含むSUMを解除すると、外部の部分だけではなく、その数式自体が計算結果へ変わります。更新予定の式まで失わないよう、不要と確定した参照元だけを選びます。[すべて解除]を高速化の初手にせず、変更後に数式バーと代表値を確認します。

提出用だけ固定したい場合は、作業用を残し、提出用コピーの必要範囲へ値貼り付けする方法もあります。どちらも以後の更新を止めるための判断であり、誤った計算を正しくする方法ではありません。解除後に再び連動が必要になったら、バックアップから元の式を戻して接続を作り直します。

6. 取り込み表と計算の役割を分けて仕上げる

外部の一覧を取り込むシート、補正や照合を行うシート、報告するシートを分けると、更新時にどこを確認すべきか明確になります。参照元ファイルを一か所へ集める場合も、単に移動すると既存のリンクが切れるので、利用者と移行日を調整します。

最終確認では旧ブックと新ブックの合計・件数・代表明細を比べ、参照元を更新した後の結果も確認します。速度が改善していても、取り込み範囲の外に新しい行が残っていないか、コードの型が変わっていないかを点検します。

採用しない変更は検証用コピーで破棄し、元の作業ブックを使い続けます。採用する場合は更新担当、更新方法、参照元の場所、復旧用コピーを引き継ぎます。「接続を減らす」だけでなく、「必要な時点の正しい値を使える」ことまで確認して、外部参照の整理を完了させましょう。

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

超解決 Excel・Word研究班

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

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