「別のスプレッドシートにある売上データを、こっちのファイルでも使いたい」。部署ごとにファイルが分かれていると、毎回コピペで転記する手間が発生しますよね。
手作業の転記はミスのもとですし、元データが更新されても気づけません。
そんなときに使えるのが IMPORTRANGE関数 です。別のスプレッドシートからデータを自動で取得できるので、転記作業がゼロになります。
この記事では、基本の書き方から他の関数との組み合わせまで解説します。
IMPORTRANGE関数とは?
IMPORTRANGE関数は、別のスプレッドシートからデータを取得する関数です。
英語の「import(取り込む)」と「range(範囲)」が名前の由来です。指定したファイルの指定した範囲をそのまま引っ張ってこられます。
たとえば、次のような場面で活躍します。
- 各支店の売上ファイルを本部の集計ファイルにまとめる
- マスタデータを複数のファイルから参照する
- 別チームが管理するデータを自分のシートで活用する
元のファイルが更新されると、取得先にも反映されます。コピペと違ってデータの鮮度が保たれるのが大きなメリットです。
NOTE
IMPORTRANGE関数はGoogleスプレッドシート専用です。Excelには同じ関数は存在しません。Excelで別ブックのデータを参照するには、外部参照(
[ブック名]シート名!セル)を使います。
IMPORTRANGE関数の書き方(構文と引数)
基本構文
=IMPORTRANGE(スプレッドシートのURL, 範囲の文字列)
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| スプレッドシートのURL | 必須 | データ元のスプレッドシートのURL。文字列またはセル参照で指定 |
| 範囲の文字列 | 必須 | 取得する範囲を文字列で指定(例: "Sheet1!A1:C10") |
第1引数には、データ元のスプレッドシートのURLを丸ごと貼り付けます。ブラウザのアドレスバーからコピーすればOKです。
第2引数は "シート名!セル範囲" の形式で指定します。シート名を省略すると、最初のシートが対象になります。
IMPORTRANGE関数の基本的な使い方
ここでは、以下のような「売上管理」スプレッドシート(シート名: 売上データ)からデータを取得する例で説明します。
| 担当者 | 支店 | 商品 | 金額 |
|---|---|---|---|
| 田中 | 東京 | プランA | 50000 |
| 鈴木 | 大阪 | プランB | 30000 |
| 佐藤 | 東京 | プランA | 45000 |
| 山田 | 名古屋 | プランC | 20000 |
| 高橋 | 大阪 | プランB | 60000 |
アクセスを許可する手順
IMPORTRANGE関数を初めて使うときは、アクセス許可が必要です。
数式を入力すると、セルに #REF! エラーが表示されます。これは正常な動作です。
セルをクリックすると「アクセスを許可」というボタンが表示されます。このボタンをクリックすれば、データが取得されます。
NOTE
アクセス許可はスプレッドシートの組み合わせごとに1回だけです。一度許可すれば、同じファイル間では再許可は不要です。別の数式を追加しても、そのまま使えます。
シート名を指定して取得する
データ元のシート名が「売上データ」の場合、次のように書きます。
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "売上データ!A1:D6")
xxxxx の部分は実際のスプレッドシートIDです。URLをそのまま貼り付けてください。
A1:D6の範囲(見出し行を含む4列×6行)が、数式を入力したセルを起点に展開されます。
TIP
URLが長くて数式が読みにくい場合は、URLを別のセルに入力しておくと便利です。たとえばA1セルにURLを入れておけば、次のように書けます。
“`
=IMPORTRANGE(A1, “売上データ!A1:D6”)
“`複数の数式で同じファイルを参照するときに特に効果的です。
IMPORTRANGE関数の実践的な使い方
IMPORTRANGE関数は、他の関数と組み合わせることで真価を発揮します。取得したデータをそのまま加工できるので、転記後の手作業もなくなります。
QUERY関数との組み合わせ(条件付き取得)
QUERY関数は、SQLに似た命令でデータを操作できる関数です。IMPORTRANGE関数で取得したデータに対して、条件付きの抽出や集計ができます。
たとえば、別ファイルの売上データから「東京支店」のデータだけを取得するにはこう書きます。
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "売上データ!A1:D6"), "SELECT * WHERE Col2 = '東京'")
ポイントは列の指定方法です。通常のQUERY関数では A, B, C... で列を指定します。しかしIMPORTRANGE経由の場合は Col1, Col2, Col3... という形式になります。
取得範囲の左端が Col1、2列目が Col2 という対応です。
支店ごとの売上合計を出すこともできます。
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "売上データ!A1:D6"), "SELECT Col2, sum(Col4) GROUP BY Col2")
WARNING
IMPORTRANGE経由のQUERY関数で
A, B, C形式を使うとエラーになります。必ずCol1, Col2...形式で列を指定してください。
VLOOKUP関数との組み合わせ(マスタ検索)
VLOOKUP関数は、検索値をもとに対応する値を返す関数です。IMPORTRANGE関数と組み合わせれば、別ファイルのマスタデータから必要な情報を引っ張れます。
たとえば、商品マスタが別ファイルにある場合を考えます。B2セルの商品名で検索して、単価を取得するにはこう書きます。
=VLOOKUP(B2, IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "商品マスタ!A:C"), 3, FALSE)
第2引数にIMPORTRANGE関数を直接入れるだけです。検索範囲が別ファイルになるだけで、VLOOKUPの使い方自体は変わりません。
TIP
VLOOKUPとIMPORTRANGEの組み合わせは、マスタの一元管理に最適です。商品マスタ・社員マスタ・取引先マスタなどを1つのファイルで管理できます。各部署のファイルから参照する運用がおすすめです。
FILTER関数との組み合わせ
FILTER関数は、条件に合うデータを抽出する関数です。IMPORTRANGE関数で取得した範囲に対してフィルタをかけられます。
金額が40,000円以上のデータだけを取得する場合はこう書きます。
=FILTER(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "売上データ!A2:D6"), IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "売上データ!D2:D6") >= 40000)
FILTER関数の場合、データ範囲と条件範囲の行数を揃える必要があります。そのため、IMPORTRANGE関数を2回使っています。
TIP
条件付きで別ファイルのデータを取得する場合、QUERY関数との組み合わせのほうが数式がシンプルです。用途に応じて使い分けてください。
IMPORTRANGE関数でよくあるエラーと対処法
| エラー | 主な原因 | 対処法 |
|---|---|---|
#REF!(アクセス許可) | 初回のアクセス許可がまだ | セルをクリックして「アクセスを許可」ボタンを押す |
#REF!(無効な範囲) | シート名や範囲の指定ミス | シート名のスペルと範囲を再確認する |
#REF!(URL不正) | URLの形式が正しくない | ブラウザからURLをコピーし直す |
Loading... が消えない | データサイズが大きい・接続不良 | 範囲を狭めるか、時間をおいて再試行する |
Error loading data | シート名が存在しない・権限不足 | シート名の存在確認と共有設定の見直し |
#REF! エラーが最もよく出ます。原因の多くは「アクセス許可の未実施」か「範囲指定のミス」です。
まずはセルをクリックして許可ボタンが出ないか確認してください。ボタンが出ない場合は、URLとシート名を見直しましょう。
元ファイルが削除された場合も #REF! エラーになります。この場合は元ファイルを復元するか、数式を修正する必要があります。
IMPORTRANGE関数の注意点・制限事項
IMPORTRANGE関数を使ううえで知っておきたいポイントをまとめます。
データ量の制限
1回のIMPORTRANGE関数で取得できるデータは最大10MBです。大量のデータを取得する場合は、範囲を分割して複数の数式に分けてください。
更新タイミング
取得データはリアルタイム更新ではありません。スプレッドシートを開いたタイミングで再読み込みされます。常に最新データが必要な場合は、定期的にファイルを開く運用が必要です。
権限の管理
データ元のスプレッドシートへの閲覧権限が必要です。権限が変更されると、再度アクセス許可が必要になることがあります。
パフォーマンスへの影響
IMPORTRANGE関数を多用すると、スプレッドシートの動作が重くなります。1つのファイル内で使いすぎないよう注意してください。
WARNING
IMPORTRANGE関数はセルの書式やデータの入力規則は取得しません。取得されるのは値のみです。書式が必要な場合は、取得先のセルに別途設定してください。
まとめ
IMPORTRANGE関数は、別のスプレッドシートからデータを自動取得できるGoogleスプレッドシート専用の関数です。
この記事で紹介した内容を振り返っておきましょう。
| 項目 | ポイント |
|---|---|
| 基本構文 | =IMPORTRANGE("URL", "シート名!範囲") |
| アクセス許可 | 初回のみ必要。セルをクリックして許可ボタンを押す |
| QUERY関数との組み合わせ | 条件付き取得・集計ができる。列指定は Col1, Col2... 形式 |
| VLOOKUP関数との組み合わせ | 別ファイルのマスタデータを検索できる |
| FILTER関数との組み合わせ | 条件に合うデータだけを抽出できる |
| 制限事項 | 最大10MB、値のみ取得、開いたときに更新 |
まずは基本の書き方とアクセス許可の手順を押さえてください。慣れてきたらQUERY関数やVLOOKUP関数との組み合わせにも挑戦してみましょう。
ファイル間のデータ連携がスムーズになると、スプレッドシートの活用の幅がぐっと広がりますよ。
