部門別の売上シートや、共有されているマスタデータ。毎月コピペで自分のシートに貼り直していませんか。実はGoogleスプレッドシートには、別ファイルのデータをそのまま「自動で」取りに行ける関数があります。それが IMPORTRANGE関数 です。
この記事では、IMPORTRANGEの基本構文から初回のアクセス許可、よくあるエラー対処までを完全ガイドします。VLOOKUPやQUERYとの組み合わせも、「同僚に教える感覚」で解説していきます。読み終えるころには、「コピペ転記」を仕組みごと卒業できるようになります。
スプレッドシートのIMPORTRANGE関数とは?基本構文と動作モデル
IMPORTRANGE関数は、別のスプレッドシートからデータを自動取得して表示する関数です。Excelには存在しない、Googleスプレッドシートならではの機能になります。
基本構文
=IMPORTRANGE(参照元のURLまたはID, "シート名!範囲")
引数は2つだけです。
| 引数 | 意味 | 例 |
|---|---|---|
| 第1引数 | 参照元スプレッドシートのURLまたはID | "https://docs.google.com/spreadsheets/d/abc123.../edit" |
| 第2引数 | 取得したいシート名と範囲を文字列で | "営業!A1:E100" |
両方とも文字列なので、ダブルクォーテーション " で囲む点に注意してください。
3つの構成要素を意識する
IMPORTRANGEを正しく使うコツは、次の3要素を分けて考えることです。
- どのファイルから(参照元のURL/ID)
- どのシートから(シート名)
- どの範囲を(A1:E100のようなセル範囲)
この3つが揃って初めて、ピンポイントでデータを引っ張ってくる動きが成立します。
スピル(自動展開)で動く
IMPORTRANGEは1つのセルに数式を書くだけで、結果範囲全体に自動展開されます。たとえば A1 に =IMPORTRANGE(...) と書いたとします。100行5列を取得する設定なら、A1:E100 に値が一気に入ります。
NOTE: 値が表示されるのは「IMPORTRANGEを書いたセル」を起点にした範囲です。下や右に既存データがあると、後述の「結果が大きすぎます」エラーが出ます。貼り付け先には十分なスペースを空けておきましょう。
最初の1本を動かす:基本の使い方とアクセス許可の手順
ここからは、実際に最初の1本を動かすまでの手順を見ていきます。
Step 1: 参照元のURLを取得する
参照したいスプレッドシートを開き、ブラウザのアドレスバーからURLをコピーします。URLは次の形式になっています。
https://docs.google.com/spreadsheets/d/【ここがID】/edit#gid=0
URL全体を使ってもいいですし、d/ と /edit の間にあるID部分だけでも動きます。
Step 2: 参照先で数式を入力する
データを取り込みたいスプレッドシート(参照先)を開き、好きなセルに次のように入力します。
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abc123.../edit", "営業!A1:E100")
入力後にEnterを押すと、最初は #REF! が表示されます。慌てなくて大丈夫です。これは「アクセス許可がまだ」というサインに過ぎません。
Step 3: 「アクセスを許可」をクリックする
#REF! が表示されたセルにマウスを乗せると、吹き出しが出ます。「これらのシートをリンクする必要があります」というメッセージと「アクセスを許可」ボタンが現れます。これをクリックすると、参照元との接続が確立されます。
許可が通った瞬間、#REF! が消えてデータが一気に流れ込んできます。
NOTE: 一度許可すれば、同じ参照元に対しては再度ボタンを押す必要はありません。アカウントとファイルの組で記憶される仕組みです。
URLは「セル参照」にしておくと管理しやすい
実務では、URLを直接数式に書き込むより、別セルにURLを置いて参照する方が便利です。
A1: https://docs.google.com/spreadsheets/d/abc123.../edit
B1: =IMPORTRANGE(A1, "営業!A1:E100")
参照元が変わったときに、A1のURLを差し替えるだけで全数式が更新されます。
アクセス許可が通らない・繰り返すときの原因と対処
「アクセスを許可」を押しても #REF! のまま、あるいは何度も許可ダイアログが出るというトラブルは珍しくありません。原因はいくつかパターンがあります。
原因1: ログイン中のアカウントが意図したものと違う
ブラウザで複数のGoogleアカウントにログインしているケースが原因のことが多いです。「許可を押したアカウント」と「参照元の閲覧権限を持つアカウント」がズレてしまいます。
対処: ブラウザの右上のアカウントアイコンを確認し、参照元ファイルへの権限がある側のアカウントで操作してください。確実なのはシークレットウィンドウで1アカウントだけログインして許可作業を行う方法です。
原因2: 参照元ファイルへの閲覧権限がない
許可作業をしているアカウントが、そもそも参照元ファイルにアクセスできない場合は許可が成立しません。
対処: 参照元ファイルの所有者に依頼して、許可作業を行うアカウントに閲覧者以上の権限で共有してもらいます。編集権限までは必要ありません。
原因3: Google Workspaceの組織外共有制限
会社のWorkspaceで「組織外との共有を制限」する設定が有効だと、組織外のスプレッドシートはIMPORTRANGEで参照できません。
対処: 両方のファイルを同じ組織内のドライブに置く、もしくはWorkspace管理者に共有設定の調整を相談します。
原因4: 参照元ファイルが削除・移動された
参照元のスプレッドシートが削除されたり、URLが変わったりすると、IMPORTRANGEは恒久的に #REF! のままになります。
対処: 新しいURLに数式を書き換えるか、参照元を復元します。ゴミ箱からの復元なら同一URLで戻せる場合があります。
原因5: キャッシュが残っている(まれ)
ごくまれに、許可は通っているのに表示だけが古いままというケースがあります。
対処: 数式をいったん削除し、再度貼り付けて許可ダイアログを再表示させると解消することがあります。
コピペ転記をゼロにする実務テンプレ3選
ここからは、実際に「コピペ転記」を置き換える3つのテンプレを紹介します。どれも数式をコピーして自分のID・シート名に置き換えるだけで動きます。
テンプレ1: 部門別シートを集計用マスターに自動集約
部門A・B・Cの売上シートを、毎月集計用シートへ手作業でコピペしているケース。これをIMPORTRANGEで自動化します。
集計用シートのA1セルに次のような数式を3つ並べる方法が基本です。
=IMPORTRANGE("部門AのID", "売上!A2:E1000")
ただし、このまま3部門分を縦に並べると行範囲がぶつかるため、間に十分なスペースを取るか、後述のQUERY組み合わせを使います。
QUERYでまとめる方が実務では便利です。
=QUERY({IMPORTRANGE("部門AのID","売上!A2:E1000"); IMPORTRANGE("部門BのID","売上!A2:E1000"); IMPORTRANGE("部門CのID","売上!A2:E1000")}, "select * where Col1 is not null", 0)
{...; ...; ...} という波括弧でくくると、3つの取り込み結果を縦に連結できます。
NOTE: 中括弧で連結する場合、各IMPORTRANGEの列数は揃える必要があります。列数が違うとエラーになるので注意してください。
テンプレ2: 月次レポートのデータ自動更新
営業データ用ファイル(生データ)と、レポート用ファイル(グラフ・サマリー)を分離する運用です。レポート側でIMPORTRANGEを使えば、生データが更新されるたびにレポートも自動更新されます。
レポートシートでの基本形は次のようになります。
=QUERY(IMPORTRANGE("営業データのID","売上!A1:F"), "select Col1, Col5 where Col2 = '2026-04' label sum(Col5) '4月売上'", 1)
月度の絞り込みをQUERYのwhere句で行うため、月が変わったら数式の '2026-04' 部分だけ書き換えれば最新月のレポートになります。
テンプレ3: 商品マスタを複数ファイルから参照
商品マスタを1ファイルに集約し、各部門の請求書テンプレからVLOOKUP+IMPORTRANGEで参照する運用です。
請求書テンプレのC2セルに次のように書きます。
=VLOOKUP(B2, IMPORTRANGE("マスタファイルのID","商品マスタ!A:C"), 3, FALSE)
B2に商品コードを入力すると、マスタの3列目(商品名や単価)が自動で表示されます。マスタを更新するだけで、すべての請求書テンプレに反映されるのが強みです。
VLOOKUP・QUERY・FILTERと組み合わせる応用パターン
IMPORTRANGEは単独でも便利ですが、他の関数と組み合わせると一気に実務的になります。代表的な3パターンを紹介します。
パターン1: IMPORTRANGE × QUERY(条件付き取り込み)
「売上が10万円以上の行だけ取得したい」のように条件付きで取り込むなら、QUERYと組み合わせるのが定番です。
=QUERY(IMPORTRANGE("ID","売上!A1:F1000"), "select Col1, Col3 where Col5 > 100000", 1)
ここでのポイントは、列名がCol1, Col2… に変わることです。IMPORTRANGEの結果は元の列名(A、B、Cなど)ではなく、Col1から順に振り直されます。QUERYのselect句では Col1 形式で指定してください。
パターン2: IMPORTRANGE × VLOOKUP(マスタ参照)
別ファイルにあるマスタテーブルから値を引いてくる場合は、VLOOKUPのrange引数にIMPORTRANGEをそのまま入れます。
=VLOOKUP(A2, IMPORTRANGE("ID","商品マスタ!A:C"), 3, FALSE)
VLOOKUPの第2引数(検索範囲)は、配列を返す関数なら何でも受け入れます。そのため、IMPORTRANGEをそのままネストできます。
パターン3: IMPORTRANGE × FILTER(条件抽出)
FILTER関数で条件抽出する場合は、条件列も同じくIMPORTRANGEで取得する必要があります。
=FILTER(IMPORTRANGE("ID","売上!A2:F1000"), IMPORTRANGE("ID","売上!E2:E1000")>100000)
ただしIMPORTRANGEを2回書くとパフォーマンスが落ちやすいです。行数が多い場合はQUERYに寄せた方が高速になります。
パターン4: IMPORTRANGE × SUMIF/COUNTIF
特定条件の合計や件数を出す場合も、条件範囲・合計範囲ともにIMPORTRANGEで取得します。
=SUMIF(IMPORTRANGE("ID","売上!B:B"), "営業1部", IMPORTRANGE("ID","売上!E:E"))
「営業1部」だけの売上合計を、別ファイルから直接計算できます。
IMPORTRANGEのエラー対処早見表
最後に、IMPORTRANGEで遭遇しやすいエラーをまとめておきます。原因と対処をワンセットで押さえておくと、いざというとき迷いません。
| エラー表示 | 主な原因 | 対処 |
|---|---|---|
#REF! | アクセス未許可 / 参照元削除 / 範囲指定が無効 | セルにマウスを乗せて「アクセスを許可」をクリック。参照元URLと範囲を再確認 |
#N/A | 参照範囲にデータが存在しない / シート名のタイプミス | シート名と範囲を見直し。シート名前後の空白に注意 |
#ERROR! | クォーテーションのつけ忘れなど数式の構文エラー | ダブルクォーテーションとカンマを再確認 |
結果が大きすぎます | 取り込み範囲が貼り付け先のスペースを超えている | 範囲を狭めるか、貼り付け先の下/右に空きセルを確保 |
この関数を使用するにはユーザーアカウントが必要です | Googleアカウント未ログインで開いている | アカウントでログインした状態で開き直す |
| 循環依存エラー | 参照元と参照先が相互に参照している | 参照関係を整理し、中間シートを挟む |
NOTE:
#REF!が出たときは、まずセルにマウスを乗せてみる癖をつけましょう。「アクセスを許可」ボタンが出ていれば許可するだけで解消します。
複数人で運用するときの注意点とパフォーマンス
ここまでで「動かす」「組み合わせる」「直す」が一通りできるようになりました。実務でチーム運用する場合の注意点も押さえておきます。
推奨する権限設計
| 役割 | 担当 | 必要な権限 |
|---|---|---|
| マスタ役 | 参照元ファイルにデータを追加・更新する人 | 参照元ファイルの編集権限 |
| 集約役 | 参照先ファイルでIMPORTRANGEを書き、許可作業を行う人 | 参照元の閲覧権限 + 参照先の編集権限 |
| 閲覧役 | 取り込まれたデータを見るだけの人 | 参照先の閲覧権限のみ |
許可作業は集約役のアカウントに集約するのがトラブルを減らすコツです。
パフォーマンス上の注意点
- 参照範囲が広いほど初回の読み込みが重くなります
- 同じ参照を複数のセルに書くより、1セルに集約して他セルから参照する方が軽く動きます
A:Eのような列全体指定は便利ですが、行数が多いシートではかなり遅くなります- 1スプレッドシート内のIMPORTRANGE数式が多すぎると再計算が頻発し、ファイル全体が重くなります
構造変更で壊れることがある
参照元のシートで列の挿入・削除・並び替えが行われると、A1:E100 のような固定範囲はズレます。重要な集計シートでは、参照元側で「列を増やすときは末尾に追加するルール」をチームで合意しておくと事故を減らせます。
まとめ:IMPORTRANGEで「データを取りに行く」発想に変える
IMPORTRANGE関数のポイントを整理します。
- 基本構文は
=IMPORTRANGE(URL, "シート名!範囲")の2引数だけ - 初回のアクセス許可は #REF! の吹き出しから「アクセスを許可」をクリック
- 許可が通らないときは、ログインアカウント・参照元の共有権限・組織外共有設定を順に確認
- QUERY/VLOOKUP/FILTERと組み合わせれば、条件付き取り込みやマスタ参照も自由自在
- エラー早見表で
#REF! / #N/A / 結果が大きすぎますなどの主要エラーは即対応できる - 権限設計はマスタ役・集約役・閲覧役の3役で整理する
「コピペ転記」が当たり前になっていた業務も、仕組みごと置き換えれば毎月の手間がぐっと減ります。まずは1ファイル、月次レポートあたりから取り入れてみてください。
