ADVERTISEMENT

【Googleスプレッドシート】別シート・別ファイルから値を引っ張る!IMPORTRANGEの使い方

【Googleスプレッドシート】別シート・別ファイルから値を引っ張る!IMPORTRANGEの使い方
🛡️ 超解決

Googleスプレッドシートで別のシートや別のファイルからデータを参照したいと思ったことはありませんか。手動でコピー&ペーストを繰り返していると、ミスが発生したり更新が面倒だったりします。IMPORTRANGE関数を使えば、数式一つで他のスプレッドシートからリアルタイムに値を取得できます。この記事では、IMPORTRANGEの基本的な使い方からQUERYやARRAYFORMULAとの連携、注意点までを詳しく解説します。

【要点】IMPORTRANGEで別シート・別ファイルを参照する3つのポイント

  • =IMPORTRANGE(スプレッドシートURL, 範囲): 第1引数にURL全体またはスプレッドシートID、第2引数にシート名とセル範囲を文字列で指定します。
  • 初回はアクセス許可の承認: インポート元ファイルへのアクセス許可が求められるので、セル内のボタンをクリックして承認します。
  • QUERY関数との組み合わせ: IMPORTRANGEをQUERYの第1引数に指定することで、絞り込みや並べ替えが可能です。

ADVERTISEMENT

IMPORTRANGEの仕組みと基本構文

IMPORTRANGEは、指定したスプレッドシートのセル範囲をインポートする関数です。構文は「=IMPORTRANGE(スプレッドシートURL, 範囲文字列)」です。第1引数にはインポート元のスプレッドシートのURL全体か、スプレッドシートIDを引用符で囲んで指定します。第2引数には「シート名!セル範囲」の形式で範囲を指定します。例えば、別ファイルの「データ」シートのA1からC10を取得するには、「=IMPORTRANGE(“https://docs.google.com/spreadsheets/d/abcd1234/edit#gid=0”, “データ!A1:C10”)」と入力します。

この関数は、インポート元のファイルが自分自身の所有物でなくても、閲覧権限があれば使用できます。ただし、初回アクセス時にはアクセス許可の承認が必要です。また、IMPORTRANGEは配列を返すため、QUERYやARRAYFORMULAと組み合わせて柔軟にデータを処理できます。

IMPORTRANGEの具体的な使い方

基本の使い方

  1. インポート先のセルを選択する
    結果を表示したいセルをクリックします。通常は1つのセルで十分ですが、範囲全体を表示する場合は左上のセルを選択します。
  2. 数式を入力する
    「=IMPORTRANGE(“スプレッドシートURL”, “シート名!セル範囲”)」と入力します。URLはブラウザのアドレスバーからコピーし、引用符で囲みます。範囲文字列も引用符で囲みます。
  3. アクセス許可を承認する
    初めてそのファイルを参照する場合、セルに「#REF!」エラーが表示されます。セルをクリックすると「アクセスを許可」ボタンが表示されるので、クリックして許可します。許可後、データが自動的に表示されます。

QUERY関数と組み合わせる方法

  1. QUERY関数の第1引数にIMPORTRANGEを入れる
    「=QUERY(IMPORTRANGE(“URL”, “範囲”), “select * where Col1 is not null”)」のように記述します。これで、インポートしたデータから空白行を除外できます。
  2. フィルタ条件を指定する
    QUERYのSQLライクな構文で、必要な列だけ選択したり、条件に合致する行だけを抽出できます。例えば「select Col1, Col2 where Col3 > 100」のように使います。

ARRAYFORMULAとの組み合わせ(注意点)

IMPORTRANGEはすでに配列を返すため、ARRAYFORMULAで囲む必要はありません。むしろ、ARRAYFORMULAで囲むとエラーになる場合があります。そのままセルに入力して、隣接するセルに自動的に展開されます。ただし、特定の行だけを処理したい場合は、INDEX関数と組み合わせて使用できます。

同じファイル内の別シートを参照する場合

同じファイル内の別シートを参照する場合は、直接参照「=シート名!セル範囲」が簡単です。例えば「=データ!A1:C10」と入力します。IMPORTRANGEを使用することも可能ですが、権限の承認が不要な直接参照をおすすめします。

IMPORTRANGEを使うときの注意点とよくあるエラー

初回アクセス時に#REF!エラーが表示される

これはアクセス許可がまだ承認されていないために発生します。セルをクリックして「アクセスを許可」ボタンを押すと解消します。許可後は自動でデータが表示されます。一度許可すると、同じファイルを再度参照する際には承認不要です。

インポート元のシートにアクセス権限がない

インポート元のスプレッドシートの所有者が、閲覧権限を付与していない場合はエラーになります。インポート元のファイルの共有設定を確認し、少なくとも「閲覧者」権限を付与してもらう必要があります。自分が所有するファイルの場合は、共有設定を変更してください。

更新のタイミングに注意する

IMPORTRANGEの結果はリアルタイムで更新されません。通常は数秒から数分の遅延があります。スプレッドシートを開き直すか、メニューの「データ」→「更新」を実行すると最新データに更新されます。トリガーを使って定期的に更新することも可能です。

大量データをインポートすると処理が遅くなる

インポートするセル範囲が大きすぎると、スプレッドシートの動作が重くなることがあります。必要な列や行だけを指定するようにしてください。また、QUERY関数でフィルタリングすると軽減できます。全列を取得する場合は「シート1!A:Z」ではなく「シート1!A1:C1000」のように範囲を限定します。

シート名にスペースや記号が含まれる場合

シート名にスペースや記号が含まれる場合は、範囲文字列内のシート名を一重引用符で囲みます。例えば「’データ一覧’!A1:C10」のように記述します。引用符を忘れるとエラーになります。

ADVERTISEMENT

IMPORTRANGEと直接参照の違い(比較表)

項目 直接参照(同一ファイル) IMPORTRANGE(別ファイル)
構文例 =シート1!A1:C10 =IMPORTRANGE(“URL”, “シート1!A1:C10”)
アクセス許可 不要 初回許可が必要
更新タイミング リアルタイム 数秒〜数分の遅延
パフォーマンス 高速 大量データで遅くなることがある
使用場面 同じファイル内のシート間参照 別ファイルからのデータ取得

まとめ

この記事では、IMPORTRANGE関数を使って別シートや別ファイルから値を引っ張る方法を解説しました。基本の構文とアクセス許可の手順を覚えれば、簡単にデータを連携できます。さらにQUERY関数と組み合わせることで、必要なデータだけを効率的に取得できます。応用例として、複数のファイルからデータを集約するダッシュボードの作成などに活用してみてください。また、IMPORTRANGEの更新タイミングや権限設定に注意して、安定したデータ連携を実現しましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。