他のスプレッドシートからデータを抽出!IMPORTRANGE関数で別ファイルを参照する方法

2019-10-03

【IMPORTRANGE】別スプレッドシートから抽出できる便利な関数
mono
mono
こんにちは、monoです。

スプレッドシートを使っていると、別のスプレッドシートファイルからデータを抽出したいと思うときがありますよね。

当記事では、

別のスプレッドシートファイルからデータを抽出したい

という方向けに、

  1. 別のスプレッドシートからデータを抽出する方法
  2. IMPORTRANGE関数の便利な使い方
  3. 別シートから欲しいデータだけ抽出する方法

について解説していきます。

IMPORTRANGE関数の使い方

それでは早速、IMPORTRANGE関数の使い方について解説します。

IMPORTRANGE関数の構文

IMPORTRANGE関数の条件式は以下の要素で構成されています。

  1. スプレッドシートファイルID
  2. シート名
  3. セル範囲

これらの要素を以下のような構文に当てはめて、関数を記述します。

=IMPORTRANGE("スプレッドシートID","シート名!範囲")

ここでいうスプレッドシートIDとは「スプレッドシートファイル固有のID」のことです。

下記のスプレッドシートURLのうち、マーカーラインが引いてある箇所がスプレッドシートIDです。

https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXX/edit

IMPORTRANGE関数の設定手順

IMPORTRANGE関数は以下の手順で設定を進めていきます。

  1. 参照元のシートを用意
  2. インポート用のシートを用意
  3. 参照元用シートの情報を用意
  4. インポート用シートに参照元用シートの情報を記述
  5. アクセスを許可する

それでは、手順に沿って実際に設定してみましょう。

参照元のシートを用意

まず、参照元のシートを用意します。

A1:G2のセル範囲に「IMPORTRANGE」というテキストを入力したので、このテキストをインポート用のシートに表示させるようIMPORTRANGE関数を使っていきます。

インポート用のシートを用意

次に、インポート用のシートを用意します。

それでは、このシートのA1:G2のセル範囲に、先ほどの参照用シートのデータを表示します。

参照元用シートの情報を用意

まず、参照用シートの情報を用意しましょう。

用意する情報には、先ほど紹介した下記3つの情報が必要です。

  1. スプレッドシートファイルID
  2. シート名
  3. セル範囲

今回の場合は、それぞれ以下の値を用意すればOKです。

  1. 1D_W-BxMnobfavVCdt5x_UtqZBSkDCSyv_2-5vMFd_DQ
  2. シート1
  3. A1:G2

インポート用シートに参照元用シートの情報を記述

それではいよいよ、インポート用シートに先ほど用意した参照用シートの情報を記述していきます。

先ほど用意した3つの情報を、以下の構文に従って記述します。

=IMPORTRANGE("スプレッドシートID","シート名!範囲")

記述すると以下のような状態になり、これで設定は完了です。

アクセスを許可する

最後に、スプレッドシート間の連携を許可する必要があります。

関数を入力したセルにカーソルを合わせると、以下のようにポップアップが表示されます。

ここで「アクセスを許可する」をクリックすれば連携完了です。

参照用シートのデータがインポート用シートに表示されたのが確認できました。

別シートから条件に一致するデータだけ抽出する方法

別シートからデータを抽出するときに、必要なデータだけ抽出したいときがあると思います。

そんなときに便利な「欲しいデータだけ抽出する方法」についても解説します。

欲しい部分だけ参照範囲を指定する方法

1番シンプルな方法は、欲しいデータ範囲だけ範囲指定する方法です。

必要な列、必要な行など、必要な範囲だけ抽出すれば、無駄なデータは連携しなくて済みます。

しかし、この方法には欠点があり、欲しいデータが1箇所にまとまっている必要があります。

たとえば、欲しいデータのある行がバラバラになっていたり、列が離れていたりすると、この方法は使えません。

欲しいデータがバラバラになっているときに欲しいデータだけ抽出するには、これから紹介するQUERY関数かFILTER関数を使ってください。

QUERY関数を使う方法

参照用データがデータベース形式になっている場合は、QUERY関数を使って欲しいデータのみ抽出するのがおすすめです。

QUERY関数はSQLライクにデータのフィルタリングやグルーピング、ソートを行うことができます。

QUERY関数とIMPORTRANGE関数を同時に使うには、以下のようにQUERY関数の範囲要素内にIMPORTRANGE関数を記述すればOKです。

=QUERY(IMPORTRANGE("スプレッドシートID","シート名!範囲"),"select 列番号 where 条件式"))

QUERY関数の実行例

参照用シート

実行結果

QUERY関数の使い方については下記の記事で詳しく解説しています。

QUERY関数の基礎から応用まで!使い方を徹底解説【保存版】

続きを読む

また、IMPORTRANGE関数とQUERY関数の組み合わせ方については下記の記事で解説しています。

IMPORTRANGE関数の使い方!QUERY・VLOOKUPとの組み合わせ方も解説!

続きを読む

IMPORTRANGE関数でよくある質問

IMPORTRANGE関数でよくある質問をまとめました。

1つずつ解説していきますね。

アクセス許可を自動化するには?

IMPORTRANGE関数で最後に押さないといけないアクセス許可ボタン」を自動化できないかということですね。

たしかにあれを押す意味ってよくわからないですし、ぼくも面倒くさいと思いますが、残念ながらアクセス許可を自動化する方法はありません

現状のIMPORTRANGE関数の仕様では自動化できないので、大人しく毎回「アクセス許可」を押すようにしましょう。

IMPORTRANGEの読み方は?

IMPORTRANGEの読み方は、「インポートレンジ」でOKです。

「イムポートランジ」とは読まないので注意しましょう。

IMPORTRANGE関数でエラーが出たときの対処法

まず、IMPORTRANGE関数がエラーで表示されないときには、関数を入力したセルにカーソルを合わせて「エラー表示」を確認しましょう。

おそらく、以下4つのいずれかが表示されているかと思います。

  1. これらのシートをリンクする必要があります。
  2. インポートした範囲の範囲またはシートが見つかりません。
  3. 配列結果は◯◯のデータを上書きするため、展開されませんでした。
  4. インポート範囲の内部エラー

それぞれのエラー文について、1つずつ解消法を紹介します。

これらのシートをリンクする必要があります。


これは「アクセス許可ができていない」のが原因なので、そのまま同じポップアップに表示されている「アクセスを許可」を押せばOKです。

インポートした範囲の範囲またはシートが見つかりません。


シート名、もしくは存在しない範囲を参照しているので、シート名と範囲名の見直しをしましょう。

配列結果は◯◯のデータを上書きするため、展開されませんでした。


配列結果を展開するセル範囲に値や関数が入っているので、展開範囲には何も入っていないように削除しましょう。

「インポート範囲の内部エラーです。」と言われる

インポート範囲の内部エラーです。」と言われる場合は、参照しているシート・セル範囲で何らかのエラーが起きています。

関数がエラーになっていないか確認するとともに、読み込み中・計算中の場合もこのエラー表示が出るので、何度か再読み込みしてみるのをおすすめします。

まとめ

今回は別のスプレッドシートファイルからデータを抽出する関数「IMPORTRANGE関数」について紹介しました。

IMPORTRANGE関数は複数のスプレッドシートを連携するときに欠かせない関数です。

この機会にIMPORTRANGE関数を習得して、普段使うデータを一元管理してみてはいかがですか。

【保存版】スプレッドシート関数一覧!業務が爆速化する関数33選

続きを読む


【2019年】スプレッドシートの勉強におすすめの本7選【網羅しました】

続きを読む

  • この記事を書いた人

mono

26歳♂首都圏住みの副業会社員/ギークでズボラないい暮らし/ADHD・HSP傾向/将来はサイドFIREでのんびり暮らしたい/楽天経済圏/リベ大生/インデックス・高配当株投資300万/お仕事の依頼はこちら

スキルを磨く スプレッドシート

IMPORTRANGE スプレッドシート関数

© 2021 monoblog