スプレッドシート

スプレッドシートのIMPORTRANGE関数で別スプレッドシートから自動反映

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

スプレッドシートのIMPORTRANGE関数とは

スプレッドシートのIMPORTRANGE関数は、別のスプレッドシートからデータを取得する関数です。IMPORTRANGE関数を使用することで、異なるスプレッドシート間でデータを共有し、集計や分析を行えます。

IMPORTRANGE関数の構文

=IMPORTRANGE("スプレッドシートURL", "シート名!セル範囲")
  • スプレッドシートURL:スプレッドシートURLをコピペして記入
  • シート名!セル範囲:シート名とセル範囲を「!」で区切って記入
シャワーズ

同じスプレッドシート内の別シートからデータを取得するときには、「=’シート1′!A1」のように記載すればOKです!IMPORTRANGE関数は必要ありません。

IMPORTRANGE関数の使い方

IMPORTRANGE関数を使うには、「=IMPORTRANGE(“スプレッドシートURL”, “シート名!セル範囲”)」のようにスプレッドシートのURL、シート名、セル範囲の指定をしましょう。

たとえば下図のシートからデータを連動させたいとします。

このとき必要になるのは、次の3点です。

  1. スプレッドシートのURL:https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXX/edit#gid=XXXXXXXXXX
  2. シート名:pokemon
  3. セル範囲:J:M

これを「=IMPORTRANGE(“https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXX/edit#gid=XXXXXXXXXX”,”pokemon!J:M”)」のように別シートのA1セルに記載します。

すると数秒〜10秒ほどして、「#REF!」というエラーと「これらのスプレッドシートをリンクする必要があります。読み込み先のスプレッドシートが新しい参照元のスプレッドシートから初めてデータを取得するときは、権限を付与する必要があります。」というメッセージが出てきます。

これに対して「アクセスを許可」をクリックしましょう。

これにより別シートのデータを取得できました。

シャワーズ

IMPORTRANGE関数を何回も使うように関数を組む場合は、一度どこかの別シートに使いたい範囲をすべて読みこんで、「=シート名!セル範囲」として調整するのをおすすめします!

IMPORTRANGE関数は便利ですが、多用するとスプレッドシートが重くなったりエラーになったりする原因となります。

IMPORTRANGE関数に似た操作・関数

ARRAYFORMULA関数:同じスプレッドシートから自動反映

同じスプレッドシートの別シート(別タブ)から単体セルを転記したい場合には、「=シート名!セル範囲」のように記載します。ただし、範囲セルを指定する場合には「=ARRAYFORMULA(シート名!セル範囲)」のようにARRAYFORMULA関数が必要です。

たとえば下図のpokemonシートからほかシートへデータを反映したいとします。

この場合、シート名と範囲を指定して「=ARRAYFORMULA(pokemon!A:D)」のようにかけばOKです。

QUERY関数:同じスプレッドシートからフィルタして反映

QUERY関数でも同様に、同じスプレッドシートの別シートからデータを取得できます。QUERY関数は「=QUERY(シート名!セル範囲,”SELECT 取得したい列”)」、のように記載します。たとえば「=QUERY(pokemon!A:D,”SELECT A,B”)」と書くと下図のように表示されます。

QUERY関数を使うと特定の条件でフィルタしたり、列の並び順を変えたり、計算をしたりと複雑な処理ができます。反面、テクニックが必要なため扱う際には注意しましょう。

IMPORTRANGE関数のエラー・注意点

参照元の権限がないとエラーになる

IMPORTRANGE関数は他スプレッドシートから参照する都合上、参照元のスプレッドシートへの権限がないと「このシートにアクセスする権限がありません。」エラーになります。組織で利用しているスプレッドシートの場合は、管理者に権限をもらえないか相談しましょう。

参照したいデータが大きすぎる

IMPORTRANGE関数で取り込める最大値を超えた場合に「結果が大きすぎます。」というエラーの表示されるケースがあります。数千、数万程度では発生しないと思われますが、表示された際には参照するセルを減らしましょう。

シートが重すぎるとエラーになる

IMPORTRANGE関数は他セルからデータを都度持ってくるため、スプレッドシートが重くなりやすいです。そのため、その他の重くなりやすい挙動と組み合わせて使っていると、エラーになったりブラウザがクラッシュしたりするので注意しましょう。

読み込んだ先のシートからはデータを編集できない

IMPORTRANGE関数は参照元のデータから連動してデータを表示しているため、参照元のデータおよびIMPORTRANGE関数で表示したデータは直接編集できません。もし参照先で編集したいのであれば、IMPORTRANGE関数で呼び出したデータを他のセルに値貼付けして編集しましょう。