スプレッドシートで別ファイルのシートやセルを参照する方法(IMPORTRANGE関数)

2020年6月29日

Googleスプレッドシートを使っていると、シート内のセルだけでなく、異なるスプレッドシートファイルにあるシートやセルを参照したい場合がでてきます。

実はスプレッドシートでは、そうした場合に参照することができる方法として、IMPORTRANGE関数が用意されています。

今回、IMPORTRANGE関数を利用した、別のスプレッドシートを参照する方法を解説したいと思います。

別のスプレッドシートを参照したい

スプレッドシートでは、同じシート内にあるセルや異なるシートのセルを参照する機会が多いです。

集計値を算出する場合や、一部情報を切り出す場合にはセル参照がとても便利です。

ただ、時折同じスプレッドシートではなく、異なるスプレッドシートのセルを参照したいケースが出てきます。

ただ、実はそうした場合にもスプレッドシートは対応しています。

異なるスプレッドシートのシート・セル値を参照できる関数が用意されています。

異なるスプレッドシートを参照できる関数

現在開いているスプレッドシートとは異なるスプレッドシートにあるセルの値を参照する関数がスプレッドシートには用意されています。

別スプレッドシートのセルを参照できるのがIMPORTRANGE関数です。

IMPORTRANGE(“スプレッドシートID or URL","シート名!参照範囲")」という形で別スプレッドシートの特定シートを参照範囲として指定可能です。

さらにスプレッドシートURLの部分は、スプレッドシートキーでも代替でき、「IMPORTRANGE(“スプレッドシートキー","シート名!参照範囲"」と書くこともできます。

IMPORTRANGE関数の使い方

実際にスプレッドシートでIMPORTRANGE関数を活用する方法を解説します。

IMPORTRANGE関数は参照するスプレッドシートのID(またはURL)と、参照するセル範囲の2つを引数に指定します。

先程紹介したスプレッドシートで、アドレス欄にあるURLから下図のように赤枠部分を確認します。

上記がスプレッドシートキーでIMPORTRANGE関数で引数に使用します。

※スプレッドシートURLも可能ですが、関数の記述が長くなるため、スプレッドシートキー推奨です。

調べたスプレッドシートキーをIMPORTRANGE関数の第一引数に設定し、第二引数に参照した「シート名!範囲」をしています。

=IMPORTRANGE(“1MrlXHTfTO8a5F-o3TxPQprsZ-Zz_m_237DW05_2JuGw",“注文データ!B1:F10")

初回はアクセス許可が必要

ただ、初めてIMPORTRANGE関数を使った際には、そのままでは別スプレッドシートの値を参照することができません。

関数を入力したセルには「#REF」と表示され、「これらのシートをリンクする必要があります」というメッセージが表示されます。

「アクセスを許可」ボタンをクリックすることで参照できるようになります。

すると、別スプレッドシートにあった表データを参照し、表示することが可能になりました。

VLOOKUPの組み合わせも

IMPORTRANGE関数とVLOOKUP関数を組み合わせることもできます。

2つを組み合わせることで、別スプレッドシートのデータから検索キーにヒットしたセルだけ抽出して表示することも可能です。

※詳しい方法は以下の記事で解説しています。

スプレッドシートのVLOOKUP関数で別のファイルを参照する方法(IMPORTRANGE関数)

IMPORTRANGEの注意点

別スプレッドシートから値を参照できるIMPORTRANGE関数はとても便利ですが、いくつかの注意点もあります。

実データは参照元にあり、編集不可

あくまで実データは参照したスプレッドシートにあり、IMPORTRANGE関数を使ったスプレッドシートでは値の修正はできません。

もし、参照したセル範囲に値を書き込もうとすると、IMPORTRANGE関数はエラーを起こします。

データを修正したい場合には、必ず参照元のスプレッドシートで修正する必要があります。

さらに、なにかメモ書き等する際は、IMPORTRANGE関数の表示範囲を避けなければいけません。

IMPORTRANGE多用で動作速度低下

IMPORTRANGE関数を使っていると、スプレッドシートを開く際に、参照先のスプレッドシートも読み込みが必要になります。

そのため、IMPORTRANGEを使っていないスプレッドシートよりも読み込み時間がかかります。

とりわけ複数のスプレッドシートをIMPORTRANGEで参照すればするほど、読み込み速度がかかります。

定期的にスプレッドシートに変化がないか参照し、変化した場合には同期処理が走るため、結果的に動作速度が低下します。

IMPORTRANGEが便利だからといって、使いすぎは厳禁です。

まとめ・終わりに

今回、Googleスプレッドシートで異なるスプレッドシートを参照するための関数「IMPORTRANGE」の使い方を解説しました。

IMPORTRANGEを使えば、別ファイルのスプレッドシートのデータにもアクセスができるようになるため、データの集計が便利になります。

ただ、便利なIMPORTRANGEですが、使い勝手で気をつけるべき点や、使いすぎには注意なところもあります。

しっかりメリットとデメリットを理解し、IMPORTRANGE関数を活用し、スプレッドシートを便利に活用しましょう。