別のスプレッドシートの表を参照できるImportrange関数
スプレッドシートの利用中に「他のスプレッドシートの特定の範囲の表を取り込みたい」という場面があるかと思います。
このようなとき、Googleスプレッドシートでは「IMPORTRANGE関数」を使用して別のスプレッドシートから(同じスプレッドシート、ファイルでも可)指定したセル範囲を読み込むことができます。
読み込む元のデータを修正するとIMPORTRANGEで表示させている表も自動で更新されるので、データの管理も容易になります。
*Googleスプレッドシートで使用できる関数です。EXCELでは使用できません(2019年1月現在)
元の表を別シートに取り込む
集計処理をする際に別のスプレッドシートから表の範囲を取り出すことで、元の表のデータをそのまま取り込むことができます。Importrange関数では「スプレッドシートキー=どのスプレッドシートのデータか」と「読み込むシートとその範囲」を指定します。
=importrange(“スプレッドシートキー”,”シート名!セル範囲”)
スプレッドシートキーはスプレッドシートのURLに含まれる
https://docs.google.com/spreadsheets/d/この部分の文字列/
のようになります。https://~ を含むURLでの指定でも利用できるようです。どのスプレッドシートなのかを明確に区別するために指定が必要です。
シート名については「シート名!」のようにシート名の直後に!をつけて指定します。省略した場合、スプレッドシートの先頭のシートが選ばれます。
セル範囲は上で指定したシートのセルの範囲を指定します。
実際に利用するには
図のような「元のデータ」というシートを含むファイル(スプレッドシート)から「元のデータ シートのA1からD8の範囲」をシート「Importrangeした表」のA1セルを起点にImportrangeで取り込んでみましょう。Importrangeでデータを取り込む「Importrangeした表」シートのセルA1に以下の数式を入力します。
今回は同じファイル(スプレッドシート)ですがスプレッドシートキーは省略できません。
=importrange(“スプレッドシートキー”,”元のデータ!A1:D8″)
Importrange関数を使用して表を取り込んだ場合、元の表のデータを変更するとImportrangeで表示されているデータも書き換わります。
数式を入力すると図のようなエラー(メッセージ)が表示されます。これは「現在作業中のスプレッドシートから他のスプレッドシートを参照する権限があるかどうか」の確認のために表示されます。自分で作成したスプレッドシートを参照する場合は「アクセスを許可」をクリックしてImportrangeで表示させる許可を与えることができます。
「アクセスを許可」をクリックするとImportrange関数でセル範囲を参照できうようになります。
Importrange関数で読み込んだ表に対して、読み込んだ表の範囲外に項目や数式などを入力することも可能です。
データがどれくらい増えるかわからない場合
先ほどの例ではセルの範囲を指定して元の表からデータを取り込みました。しかし、この先に元の表が大きくなった場合はどうでしょう。今のままでは指定したセル範囲の内容だけを参照していますが、元の表が膨大な大きさになることを見越してセル参照する場合はあらかじめ
=importrange(“1bO0BtGY-knh4I_jtim0yLQZxl77NkRnKIhUG6sduXvQ”,“元のデータ!A1:D1000000“)
のように100万行まで、という指定も可能です(データ参照に時間がかかる場合があります)。
QUERY関数との合わせ技で必要データを参照
Importrange関数を単独で使用した場合、元のデータ(表)がそのままの形で表示されます。必要な項目だけを取り出して参照するにはQuery関数と一緒に使用することにより用途に併せたデータ参照が行なえます。
なお、列番号はA列はCol1、B列はCol2のように「Col*」の形式で指定しなくてはいけません。
=query(importrange(スプレッドシートキー,シート名!セル範囲),”where 列番号 = ‘検索したい内容'”,true)
例では元のデータから「みかん」の項目だけを抜き出しImportrange関数で抜き出し参照しています。「A列」という指定のため「Col1」と入力しています。
=query(importrange(“スプレッドシートキー”,“元のデータ!A1:D8”),“where Col1 = ‘みかん'”,true)
このようにしてデータを参照する際には必要な項目やデータだけを利用する、ということもできます。
データのスプレッドシートを複数作成して上手にデータを分割
ひとつのスプレッドシートにすべてのデータをまとめると作業がしずらくなる場面があります。Importrange関数を利用してデータの連携をうまく行いましょう。