[Googleスプレッドシート] IMPORTRANGE で別ファイルのデータを参照する
Office※ 本記事はアフィリエイト広告(Amazonアソシエイト)を含みます。
別のスプレッドシートのデータを、コピペせずにそのまま参照したいときは IMPORTRANGE を使います。元データが更新されれば参照側も自動で追従します。
基本構文
=IMPORTRANGE("スプレッドシートのURL または ID", "シート名!範囲")
例:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/ABC123.../", "売上!A1:D100")
URL 全体でも、/d/ と /edit の間の ID 部分だけでもOKです。
=IMPORTRANGE("ABC123...", "売上!A1:D100")
初回は「アクセスを許可」が必要
IMPORTRANGE を初めて使うと、セルに #REF! が出て「アクセスを許可」というボタンが表示されます。これを押して、参照元ファイルへのアクセスを承認すると表示されます。
これは参照する側で1回だけ必要な操作。許可するとファイル間がリンクされ、以降は自動で更新されます。
他の関数と組み合わせる
IMPORTRANGE は「範囲を返す関数」なので、QUERY や VLOOKUP の中に入れられます。
QUERY で絞り込みながら取り込む
=QUERY(IMPORTRANGE("ABC123...", "売上!A1:D"), "select Col1, Col4 where Col2 = 'tech'", 1)
IMPORTRANGE の結果に対しては、列を Col1,Col2… という形で指定する点に注意(A,B ではない)。
VLOOKUP の検索範囲に使う
=VLOOKUP(A2, IMPORTRANGE("ABC123...", "マスタ!A:C"), 3, false)
ハマりどころ・メモ
- 初回の 「アクセスを許可」 を押し忘れると
#REF!のまま。 - IMPORTRANGE 内では列指定が
Col1,Col2…(QUERY と組み合わせるとき特に注意)。 - 大量データ・多数の IMPORTRANGE は重くなる。必要な範囲だけに絞る(
A1:Dのように列を限定)と軽い。 - 参照元の列を挿入・削除すると参照がズレることがあるので、元データの構造変更には注意。
部署ごとのシートを1つの集計シートにまとめる、といった用途で重宝します。
GoogleSpreadsheet