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つのセルで十分ですが、範囲全体を表示する場合は左上のセルを選択します。 - 数式を入力する
「=IMPORTRANGE(“スプレッドシートURL”, “シート名!セル範囲”)」と入力します。URLはブラウザのアドレスバーからコピーし、引用符で囲みます。範囲文字列も引用符で囲みます。 - アクセス許可を承認する
初めてそのファイルを参照する場合、セルに「#REF!」エラーが表示されます。セルをクリックすると「アクセスを許可」ボタンが表示されるので、クリックして許可します。許可後、データが自動的に表示されます。
QUERY関数と組み合わせる方法
- QUERY関数の第1引数にIMPORTRANGEを入れる
「=QUERY(IMPORTRANGE(“URL”, “範囲”), “select * where Col1 is not null”)」のように記述します。これで、インポートしたデータから空白行を除外できます。 - フィルタ条件を指定する
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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
