スプレッドシートのIMPORTRANGE関数の使い方

別のスプレッドシートのデータをコピペで転記していて、更新のたびに同じ作業を繰り返すのに疲れていませんか。

今回はIMPORTRANGE関数の基本の使い方に加えて、「アクセスを許可した人」が異動・退職するとどうなるかという、見落とされがちなリスクまで解説します。

IMPORTRANGEって何ができるの?基本の書き方

リュージ、別のファイルのスプレッドシートのデータを毎回コピペしてるんだけど、もっと楽な方法ない?

それ、IMPORTRANGE関数がぴったりだよ。別のスプレッドシートの指定した範囲を、自分のシートに自動で同期してくれる関数なんだ。元のファイルが更新されると、こっちも自動で最新の状態に反映される。

コピペの手間、丸ごとなくなるってこと?書き方は難しい?

構文はシンプル。=IMPORTRANGE(“スプレッドシートのURL”, “範囲の文字列”) の形。1つ目にコピペした元ファイルのURL、2つ目に「シート名!A1:D10」みたいな取得したい範囲を、それぞれダブルクォーテーションで囲んで指定するだけだよ。

同じファイル内の別シートを見る時と同じ感覚で使える?

そこは少し違う。同じファイル内なら「=’シート名’!セル番地」だけで済むけど、ファイルが別だとこの書き方は使えない。だからこそIMPORTRANGEが必要になる、という位置づけなんだ。

IMPORTRANGE関数は、別のGoogleスプレッドシートにある指定範囲のデータを自分のシートに自動で読み込み、同期する関数である。構文は「=IMPORTRANGE("スプレッドシートのURL", "範囲の文字列")」というシンプルな形で、同一ファイル内の別シート参照とは異なり、ファイルをまたぐ場合はこの関数が必要になる。元ファイルが更新されると読み込み先も自動で反映されるため、手動でのコピペ作業を削減できる。

最初に出る「#REF!」は故障じゃない

教えてもらった通りに入力したのに「#REF!」ってエラーが出た!壊れてる?

落ち着いて、それは故障じゃなくて仕様。IMPORTRANGEは初めて2つのファイルを連携させる時、セキュリティのために必ず一度「#REF!」が出るようになっているんだ。セルにマウスを合わせると「アクセスを許可」という青いボタンが出てくるはずだよ。

そのボタンを押せば直る?

うん、クリックすればすぐデータが表示されるよ。この許可は2つのファイル間で一度だけ必要な操作。ただし許可できるのは「元ファイルの閲覧権限」と「書き込み先の編集権限」を両方持っている人だけ。誰でも押せるわけじゃない点は覚えておいて。

一回許可すれば、もう二度と出てこない?

基本的には出ない。一度許可すれば、その後は編集権限を持たない閲覧専用のメンバーでも、読み込まれたデータを普通に見られるようになるよ。

IMPORTRANGE関数を初めて2つのファイル間で使う際、必ず一度「#REF!」エラーが表示されるが、これは故障ではなくセキュリティ機能による仕様である。セルにカーソルを合わせて表示される「アクセスを許可」ボタンをクリックすれば連携が完了する。ただしこの許可操作を行えるのは、元ファイルの閲覧権限と書き込み先の編集権限を両方持つユーザーに限られる。一度許可が完了すれば、以降は閲覧権限のみのユーザーでも読み込まれたデータを閲覧できる。

「許可した人」が抜けるとどうなる?見落とされがちなリスク

この前「アクセスを許可」を押したの、僕の先輩だったんだけど、その先輩が異動しちゃったんだよね。大丈夫かな?

そこ、実務でよく見落とされがちなポイントなんだよね。「誰が許可したか」は連携の裏側で記録されていて、その人がファイルへのアクセス権限を失う(異動でファイルの共有から外れる、アカウントが削除されるなど)と、連携そのものが切れてエラーに戻ってしまうことがあるんだ。

え、じゃあ担当者が変わるたびに壊れる可能性があるってこと?

可能性としてはあるね。だから複数のファイルをIMPORTRANGEで連携している場合は、「誰が最初に許可を出したか」「その人が今も両方のファイルにアクセスできる状態か」を、どこかに記録しておくと安心。もし切れてしまっても、アクセス権限を持つ別の人が改めてボタンを押せば復活するから、慌てなくて大丈夫だよ。

元ファイルの共有設定にも気をつけた方がいいの?

うん。読み込み先のシートを閲覧できる人は、数式バーに書かれたURLを見れば元ファイルにたどり着ける可能性がある。もし元ファイルが「リンクを知っていれば誰でも閲覧可」になっていると、見せたくない人にまで元データが渡ってしまうリスクがある。IMPORTRANGEを使う時こそ、元ファイル側の共有範囲は厳しめに管理しておくのが安全だよ。

IMPORTRANGEの連携は「誰が最初にアクセスを許可したか」に紐づいており、その人が元ファイルまたは読み込み先ファイルへのアクセス権限を失うと、連携が切れて再びエラーになる場合がある。連携が切れた場合は、アクセス権限を持つ別のユーザーが改めて許可すれば復旧できる。また、読み込み先のシートを閲覧できる人は数式バーから元ファイルのURLを辿れる可能性があるため、元ファイルの共有範囲は厳格に管理しておくことが望ましい。

QUERY・VLOOKUPと組み合わせた応用

読み込んだデータの中から、特定の条件のものだけ抜き出すこともできる?

できるよ。QUERY関数と組み合わせて =QUERY(IMPORTRANGE(“URL”,”シート1!A:E”), “SELECT * WHERE Col2 = ‘田中'”, 1) のように書けば、特定の担当者の行だけを抽出できる。ここで気をつけたいのが、列の指定は「A」じゃなくて「Col1」「Col2」のように書く必要があること。

商品マスターみたいなファイルからVLOOKUPで単価を取ってくることもできる?

できる。=VLOOKUP(検索値, IMPORTRANGE(“マスターのURL”,”A:D”), 列番号, FALSE) のように、VLOOKUPの範囲指定の部分にIMPORTRANGEを組み込めばいい。マスターファイルを1つ更新するだけで、それを参照している全員のシートに最新の単価が反映されるよ。

大量のデータを取り込む時、シートが重くならない工夫ってある?

セルごとにオートフィルで関数をコピーするんじゃなくて、A1:A100のように範囲をまとめて1つの関数で取得するのがコツ。あとは「A:Z」みたいに不要な列まで広く指定せず、必要な範囲だけに絞ると、動作が軽くなるよ。

IMPORTRANGEはQUERY関数と組み合わせることで特定条件のデータだけを抽出でき、その際の列指定は「A」ではなく「Col1」のような形式で記述する必要がある。VLOOKUP関数の範囲指定にIMPORTRANGEを組み込めば、別ファイルのマスターデータを参照する仕組みも構築できる。動作を軽くするには、セルごとにオートフィルで関数をコピーせず範囲をまとめて1つの関数で取得すること、不要な列まで広く指定しないことが有効である。

まとめ:IMPORTRANGE早見表

状況対処法
初回に「#REF!」が出た故障ではない。セルの「アクセスを許可」をクリック
許可できる人が分からない元ファイルの閲覧権限+先ファイルの編集権限を両方持つ人
連携が急に切れた許可した人の権限喪失を疑い、別の権限者が再度許可
条件付きで抽出したいQUERY関数と組み合わせ(列指定はCol1形式)
マスターデータを参照したいVLOOKUPの範囲指定にIMPORTRANGEを組み込む
動作が重い範囲をまとめて指定、不要な列は含めない

「#REF!」が出ても壊れたわけじゃないって分かっただけで、だいぶ気が楽になった。

そうだね。「最初のエラーは仕様」「連携は許可した人に紐づいている」という2点さえ押さえておけば、慌てずに使いこなせるはずだよ。

IMPORTRANGE関数は別ファイルのデータを自動同期できる便利な関数だが、初回に必ず表示される「#REF!」は仕様であり故障ではない点、そして連携が「誰が許可したか」に紐づいており、その人が権限を失うと連携が切れる可能性がある点を理解しておくことが重要である。QUERYやVLOOKUPとの組み合わせで応用範囲は広がるが、動作を軽く保つための範囲指定の工夫と、元ファイルの共有範囲を厳格に管理する意識も合わせて持っておきたい。

関連記事

  1. スプレッドシートでカレンダーを作る方法|自動更新・土日と祝日の色付けも解説

  2. Googleスプレッドシートの QUERY関数の使い方(SQL風の書き方でよくあるエラーも解説)

  3. Googleフォームの回答をスプレッドシートに自動反映させる方法|集計・グラフ化のコツも

  4. スプレッドシートのチェックボックス、実は奥が深い!作り方から活用の注意点まで解説

  5. スプレッドシートで「あの人が何を編集したか」を確認する方法

  6. スプレッドシートでグラフを作る方法!どの種類を選べばいいかも解説

  7. スプレッドシートで家計簿を作る方法|自動計算・グラフ化・Googleフォーム連携まで解説

  8. Googleカレンダーを共有するやり方!家族・チームでの使い分けも解説

  9. Google スプレッドシートのIF関数の使い方(初心者がつまずくポイントも解説)