この記事に出てくる用語
- ブック … Excelのファイル1つのこと。中に複数のシートが入っている
- 別のブックを参照する … 別のExcelファイルのセルを、式で指し示すこと。
='C:\売上\[1月.xlsx]data'!B2のような形になる - リンク … 上のような、別ファイルへの参照のこと。Excelは開いたときに更新するかどうかを聞いてくる
- Power Query … Excelに最初から入っている、データを取り込んで整えるための機能。「データ」タブの中にある
結論:毎月くり返す転記に、別ブックを参照する式は向かない
毎月届くファイルから数字を持ってくる作業を、='C:\売上\[1月.xlsx]data'!B2 のような式でつなぐ方法があります。
1回きりなら問題ありません。
ただし、毎月くり返す作業をこれで組むと壊れます。
理由は3つあります。
| # | 何が起きるか |
|---|---|
| 1 | 関数によっては、相手のファイルを閉じていると使えない |
| 2 | 相手が更新されても、リンクを更新しないと古い数字のまま |
| 3 | 相手のファイル名が変わると、更新しても古い数字のまま(エラーにならない) |
3番目がいちばん重い問題です。
毎月ファイル名が変わる運用(2026-01.xlsx → 2026-02.xlsx)では、式を書き直さないかぎり起きます。
| いまの状況 | 読むところ |
|---|---|
| まだ手でコピー&貼り付けしている | この記事全部。式でつなぐ前に、何が起きるかを知っておく話です |
| すでに別ブックを参照する式でつないでいる | 「すでに式でつないでいる場合の確認」まで飛ばして構いません。壊れていないかを確かめる手順です |
では何を使うか
⚠️ 下の表は、どれが向くかの目安です。
実際に使うときは、必ず小さなデータで試してから本番に移してください。
| 状況 | 向いている方法 |
|---|---|
| 月に1回だけ・相手のファイルは毎回同じ場所と名前 | 別ブックの参照でよい。ただしリンクの更新を忘れない |
| 毎月ファイルが増える/名前が変わる | Power Query(フォルダを指定して読み込む) |
| 転記の途中に、Excelの機能では表せない判断が入る | VBA |
| 月に1回・5分で終わる | 手作業のままでよい(下記) |
Power Query が向く理由と、限界
Excelの「データ」タブにある機能で、フォルダを指定して、その中のファイルをまとめて読み込むことができます。
ファイル名を1つずつ指定しないので、「毎月ファイル名が変わる」「ファイルが増える」には強いです。
新しいファイルが増えても、更新すれば取り込まれます。
入口は[データ]タブ →[データの取得]→[ファイルから]→[フォルダーから]です。
ただし万能ではありません。
- フォルダごと移動すると壊れます。指定しているのはフォルダの場所なので、そこが変われば同じ問題が起きます
- 取り込むファイルの表の形が毎月変わる場合(列が増える、見出しの位置が動く)は、そのたびに直す必要があります
この記事ではPower Queryの操作手順まで扱いません。
VBAが向く場面は、思っているより狭い
「条件によって処理を変えたいからVBA」と考えがちです。
しかし条件で行を絞る・列を計算するといった処理は、Power Queryでもできます(「金額が0の行を除く」程度なら、Power Queryのフィルターで済みます)。
VBAでないと書けないのは、Excelの機能の外に出る処理です。
たとえば「メールに添付されたファイルを保存してから読み込む」「印刷して、決まったフォルダにPDFで保存する」といったものです。
そしてVBAには、書ける人がいないと詰むという弱点があります。
作った人が異動・退職すると、誰も直せないファイルが残ります。
会社のパソコンでは、そもそもマクロの実行が禁止されていることがあります。
作る前に確認してください。
手作業を続けたほうがいい場合
自動化には、作る時間・確かめる時間・壊れたときに直す時間がかかります。
判断の目安は、作る時間を、何回分の作業で取り返せるかです。
- いまの作業に1回あたり何分かかっているか
- 年に何回やるか
- 自動化を作るのに何時間かかりそうか
この3つを先に数えてください。
作る時間を取り返すのに何年もかかるなら、手作業のままが妥当です。
月1回・5分の作業(年1時間)に3時間かけるなら、取り返すのに3年かかります。
すでに式でつないでいる場合の確認
すでに別ブックを参照する集計表がある場合、次の3つを確認してください。
確認の手順
1. 開いたときに、リンクに関する案内が出ていないか
集計表を開いたときに、リンクに関する案内が出ていませんか。
表示される場所はExcelのバージョンや設定で変わり、画面上部の細い帯のこともあれば、小窓(ダイアログ)のこともあります。
「更新できない」という言葉が出ていたら、参照先が見つかっていません。
⚠️ 「更新しますか」という趣旨の案内だけでは、無事かどうか分かりません。
この案内は、参照先が壊れていても同じように出ます。
[更新する]を選んで初めて、Excelは参照先を探しに行きます。
探した結果、見つからなければ「更新できない」という案内に変わります。
つまり、[更新する]を選ぶまで判定できません。
2. 参照先のファイルが、その場所に実在するか
数式バーで、参照しているファイル名とフォルダを確認します。
エクスプローラーでその場所を開いて、同じ名前のファイルがあるかを目で見てください。
[データ]タブに、リンクの一覧と状態を確認できる画面があります(Excelのバージョンによって項目の名前が違います。「リンクの編集」または「ブックのリンク」を探してください)。
3. #VALUE! や #REF! が出ている集計はないか
条件付きの集計(SUMIF・COUNTIFなど)で #VALUE!、INDIRECT で #REF! が出ていたら、
参照先のファイルを開いて、F9キーを押せば直ります(F9は再計算です)。
ただしそれは「毎回開かないと使えない」という意味です。
⚠️ 確かめるときは、本番のファイルをコピーしてから
「参照先の名前を変えてみる」という確認をする場合、必ずコピーを作って、コピーのほうで試してください。
本番のファイル名を変えると、そのファイルを参照している別の人の集計表も同時に壊れます。
誰が参照しているかは、こちらからは分かりません。
どこで、どう壊れるか
閉じたファイルを参照できるかは、関数によって違う
「相手のExcelを閉じていると参照できない」という説明を見かけますが、正確ではありません。
関数によります。
相手のブックを閉じたままにすると、式によって結果が分かれます。
表の2行目から下の ... は、'C:\売上\[1月.xlsx]data'!B2:B3 のような「フォルダの場所・ファイル名・シート名・セル範囲」をまとめて省略したものです(式が長くなるため)。
| 式 | 結果 |
|---|---|
='C:\売上\[1月.xlsx]data'!B2(単純な参照) | 1000 ○ |
=SUM(...) | 3000 ○ |
=AVERAGE(...) | 1500 ○ |
=MAX(...) | 2000 ○ |
=COUNTIF(...) | #VALUE! ✕ |
=SUMIF(...) | #VALUE! ✕ |
=INDIRECT(...) | #REF! ✕ |
単純な参照・SUM・AVERAGE・MAX は、相手を閉じていても動きます。
「範囲を指定する関数が駄目」という説明では、上の表を説明できません(SUM も AVERAGE も範囲を指定しますが動きます)。
閉じたファイルから引けない関数は、名前で覚えてください。
| 引けない関数 | 出るエラー |
|---|---|
| COUNTIF / COUNTIFS | #VALUE! |
| SUMIF / SUMIFS | #VALUE! |
| COUNTBLANK | #VALUE! |
| OFFSET | #VALUE! |
| DSUM などのデータベース関数 | #VALUE! |
| INDIRECT | #REF! |
厄介なのは、条件付きの集計ほどこの形になることです。
「A商品の売上だけ合計したい」は SUMIF になり、閉じたファイルからは引けません。
相手のファイルを開けば動きます。
ただし「毎月、相手のファイルを開いてから集計表を開く」という手順が固定で発生します。
リンクを更新しないと、古い数字のまま
参照先のブックの数字が 1000 から 9999 に書き換えられた後、集計表を開き直すとこうなります。
| リンクの扱い | 表示 |
|---|---|
| 更新しない | 1000(古い数字) |
| 更新する | 9999(正しい数字) |
参照先が正常な場所にある限り、更新すれば追いつきます。
参照先が無くなると、更新しても古い数字のまま
参照先のファイル名が 1月.xlsx から 1月_確定.xlsx に変わった後、集計表を開くとこうなります。
| リンクの扱い | 表示 |
|---|---|
| 更新しない | 1000 |
| 更新する | 1000(更新を指定しても変わらない) |
参照先が削除された場合も同じです(更新しても 1000 のまま)。
Excelの内部では、リンク先が 1月.xlsx を指したまま、そのファイルが存在しない状態になっています。
それでも #REF! にはならず、最後に取得できた数字が表示され続けます。
毎月の転記でよくある運用を並べます。
- 相手から届くファイル名が毎月変わる(
2026-01.xlsx→2026-02.xlsx) - 確定したファイルに
_確定や_修正版を付ける - フォルダを整理して、年度ごとに移動する
どれも普通の運用です。そして、どれもリンクが切れる原因になります。
開いたときに、知らせは出ます
ブックに無効なリンクや壊れたリンクが含まれている場合、Excelは案内を出します。
参照先が改名・移動・削除されていれば、「このブックには更新できないリンクが1つ以上含まれています」といった案内が出ます。
ただし、そこで[続行]を選んだ後の画面には、古い数字であることを示す印が何も付きません。
上の表の 1000 が、その状態です。
案内の文面や出る場所は、Excelのバージョンや設定によって違うことがあります。
案内は出ますが、急いでいるときほど[続行]を押して先に進みます。
そして押した後の画面では、古い数字に印が付きません。ほかのセルとまったく同じ見た目で並びます。
(案内そのものは、開くたびに出ます。消えるわけではありません)
関連する作業
複数の表を突き合わせて差分を見る作業は、別記事「Excelで2つの表を突合する手順」にまとめています。
転記した後の照合で使えます。
この記事の確認範囲
- Windows版のExcelの話です(Office 2024・日本語版)。Mac版やブラウザ版では、画面も動きも違うことがあります
- 閉じたファイルから引けない関数の表が、すべてを網羅しているとは限りません。表に無い関数を使うときは、相手のファイルを閉じた状態で一度試してから組んでください
- Power Query と VBA は、どちらが向くかの目安までです。操作手順や細かい挙動は扱っていません
- ネットワーク上の共有フォルダにあるファイルを参照した場合にどうなるかは分かっていません


コメント