スプレッドシートでIMPORTRANGE関数を使っていると、たびたびエラーメッセージを目にすることがありますよね。
当記事では、「反映されない」「展開されませんでした」など、IMPORTRANGE関数でよくあるエラーを解消する方法を解説します。
IMPORTRANGE関数のエラー解消法を知りたい人はぜひ参考にしてください。
IMPORTRANGE関数でよくあるエラーの解消方法
IMPORTRANGE関数でよくあるエラーの解消方法をまとめました。
まず、IMPORTRANGE関数がエラーで表示されないときには、関数を入力したセルにカーソルを合わせて「エラー表示」を確認しましょう。
おそらく、以下4つのいずれかが表示されているかと思います。
- 配列結果は◯◯のデータを上書きするため、展開されませんでした。
- インポートした範囲の範囲またはシートが見つかりません。
- これらのシートをリンクする必要があります。
- インポート範囲の内部エラー
それぞれのエラー文について、1つずつ解消法を紹介します。
配列結果は◯◯のデータを上書きするため、展開されませんでした。
配列結果を展開するセル範囲に値や関数が入っているので、展開範囲には何も入っていないように削除しましょう。
インポートした範囲の範囲またはシートが見つかりません。
シート名、もしくは存在しない範囲を参照しているので、シート名と範囲名の見直しをしましょう。
これらのシートをリンクする必要があります。
これは「アクセス許可ができていない」のが原因なので、そのまま同じポップアップに表示されている「アクセスを許可」を押せばOKです。
インポート範囲の内部エラーです。
「インポート範囲の内部エラーです。」と言われる場合は、参照しているシート・セル範囲で何らかのエラーが起きています。
関数がエラーになっていないか確認するとともに、読み込み中・計算中の場合もこのエラー表示が出るので、何度か再読み込みしてみるのをおすすめします。
それでもエラーを解消できない場合は、以下の記事で別の切り口で解決法を解説していますので、参考にしてください。
IMPORTRANGE関数の使い方
ここからは復習も兼ねて、IMPORTRANGE関数の使い方について解説します。
IMPORTRANGE関数の構文
IMPORTRANGE関数の条件式は以下の要素で構成されています。
- スプレッドシートファイルID
- シート名
- セル範囲
これらの要素を以下のような構文に当てはめて、関数を記述します。
ここでいうスプレッドシートIDとは「スプレッドシートファイル固有のID」のことです。
下記のスプレッドシートURLのうち、マーカーラインが引いてある箇所がスプレッドシートIDです。
IMPORTRANGE関数の設定手順
IMPORTRANGE関数は以下の手順で設定を進めていきます。
- 参照元のシートを用意
- インポート用のシートを用意
- 参照元用シートの情報を用意
- インポート用シートに参照元用シートの情報を記述
- アクセスを許可する
それでは、手順に沿って実際に設定してみましょう。
参照元のシートを用意
まず、参照元のシートを用意します。
A1:G2のセル範囲に「IMPORTRANGE」というテキストを入力したので、このテキストをインポート用のシートに表示させるようIMPORTRANGE関数を使っていきます。
インポート用のシートを用意
次に、インポート用のシートを用意します。
それでは、このシートのA1:G2のセル範囲に、先ほどの参照用シートのデータを表示します。
参照元用シートの情報を用意
まず、参照用シートの情報を用意しましょう。
用意する情報には、先ほど紹介した下記3つの情報が必要です。
- スプレッドシートファイルID
- シート名
- セル範囲
今回の場合は、それぞれ以下の値を用意すればOKです。
- 1D_W-BxMnobfavVCdt5x_UtqZBSkDCSyv_2-5vMFd_DQ
- シート1
- A1:G2
インポート用シートに参照元用シートの情報を記述
それではいよいよ、インポート用シートに先ほど用意した参照用シートの情報を記述していきます。
先ほど用意した3つの情報を、以下の構文に従って記述します。
記述すると以下のような状態になり、これで設定は完了です。
アクセスを許可する
最後に、スプレッドシート間の連携を許可する必要があります。
関数を入力したセルにカーソルを合わせると、以下のようにポップアップが表示されます。
ここで「アクセスを許可する」をクリックすれば連携完了です。
参照用シートのデータがインポート用シートに表示されたのが確認できました。
別シートから条件に一致するデータだけ抽出する方法
別シートからデータを抽出するときに、必要なデータだけ抽出したいときがあると思います。
そんなときに便利な「欲しいデータだけ抽出する方法」についても解説します。
欲しい部分だけ参照範囲を指定する方法
1番シンプルな方法は、欲しいデータ範囲だけ範囲指定する方法です。
必要な列、必要な行など、必要な範囲だけ抽出すれば、無駄なデータは連携しなくて済みます。
しかし、この方法には欠点があり、欲しいデータが1箇所にまとまっている必要があります。
たとえば、欲しいデータのある行がバラバラになっていたり、列が離れていたりすると、この方法は使えません。
欲しいデータがバラバラになっているときに欲しいデータだけ抽出するには、これから紹介するQUERY関数かFILTER関数を使ってください。
QUERY関数を使う方法
参照用データがデータベース形式になっている場合は、QUERY関数を使って欲しいデータのみ抽出するのがおすすめです。
QUERY関数はSQLライクにデータのフィルタリングやグルーピング、ソートを行うことができます。
QUERY関数とIMPORTRANGE関数を同時に使うには、以下のようにQUERY関数の範囲要素内にIMPORTRANGE関数を記述すればOKです。
QUERY関数の実行例
参照用シート
実行結果
QUERY関数の使い方については下記の記事で詳しく解説しています。
また、IMPORTRANGE関数とQUERY関数の組み合わせ方については下記の記事で解説しています。
まとめ
今回は別のスプレッドシートファイルからデータを抽出する関数「IMPORTRANGE関数」について紹介しました。
IMPORTRANGE関数は複数のスプレッドシートを連携するときに欠かせない関数です。
この機会にIMPORTRANGE関数を習得して、普段使うデータを一元管理してみてはいかがですか。