Googleスプレッドシートで他のシートからデータを持ってきたい、というときに役立つのが「Importrange関数」。
このページではImportrange関数の基本的な使い方から、よく使うテクニック、よく一緒に使われる関数との合わせ技を紹介していきます。
スプレッドシートを使ったデータ操作でImportrange関数は基本中の基本なので、使い方をマスターして、より分析に時間を使えるようにしていきましょう。
Importrange関数の基本的な使い方
Importrange関数は、他のシートからデータを持ってくるときに使います。元のデータのあるシートが更新されると、Importrange関数で取得するデータも自動的に更新されるので、大変便利です。
Importrange("シートキー","シート名!範囲") | |
---|---|
シートキー | 取得したいスプレッドシートのURLかキー |
範囲 | 取得したいシートのセルの範囲 |
使用例 | Importrange("1vrz5uiVaBs1l6fjkdsjfldkjsfjf9h4NaE","計画数値!A1:C30") |
①取得したいスプレッドシートのIDを指定
取得したいスプレッドシートのIDは、シートのURLから確認できます。
https://docs.google.com/spreadsheets/d/18ixC9MS_OFiWcvjh0aJRB4Z9-gJFU6E5CE4Jf4Dmvdo/edit#gid=0
https://docs.google.com/spreadsheets/d/シートID/edit
Importrange関数の第一引数でシートIDを指定します。
Importrange("18ixC9MS_OFiWcvjh0aJRB4Z9-gJFU6E5CE4Jf4Dmvdo", "タブ名!範囲")
実際には、シートIDでなくてURLでも問題はありません。今回はシートIDで進めていきます。
Importrange("https://docs.google.com/spreadsheets/d/18ixC9MS_OFiWcvjh0aJRB4Z9-gJFU6E5CE4Jf4Dmvdo/edit#gid=0", "タブ名!範囲")
②取得したいシートのタブ名と範囲を指定
Importrange関数の第二引数で、シートのどのタブなのか、タブのどの範囲なのかを指定します。タブ名と範囲の間に「!」があることを忘れないようにしてください。
Importrange("18ixC9MS_OFiWcvjh0aJRB4Z9-gJFU6E5CE4Jf4Dmvdo", "Importrange関数!A1:E")
③「アクセスを許可」を押す
「Loading…」と表示されたあとに、「これらのシートをリンクする必要があります。」と言われて、表示される「アクセスを許可」を押します。
④Importrange関数の出力
アクセスを許可すると、再度読み込んだあとに、結果が出力されます。
下記は、「18ixC9MS_OFiWcvjh0aJRB4Z9-gJFU6E5CE4Jf4Dmvdo」というシートの、「Importrange関数」というタブの、「A1:E」の範囲のデータを出力したものです。
Importrange関数のテクニック例
Importrange関数の結合方法
セル範囲を結合する方法 {範囲A, 範囲B}があります。これを {ImportrangeA, ImportrangeB} とすることで横に結合できます。
縦に結合したい場合は {ImportrangeA; ImportrangeB} です。
ほぼシート全体をインポートする
Importrange関数で、シート全体をインポートする方法は探している中で見つかりませんでした。ただ、だいたいシート全体をんポートする範囲を指定することができます。
その範囲が「1:1000000」です。この指定の意味は「100万行すべての範囲」という意味になります。100万行を超えるデータはなかなかないと思いますので、この指定で、ほぼシート全体をインポートできるでしょう。
Importrange関数の他の関数と組み合わせる使い方
Importrange関数で取得したデータをさらに絞り込みたい場合があります。よく使われるのが「Query関数」「Filter関数」「Vlookup関数」です。
Importrange関数とQuery関数
Importrange関数で出力されたデータを絞り込むなら一番「Query関数」がおすすめ。表記方法は下記の通り。
=Query( Importrange( "シートID", "範囲"), "where Col列番号 = キー", ヘッダー有無)
「Col列番号」は、Importrangeで取得したデータを左側から Col1, Col2, Col3,,,としたもの。
「ヘッダー有無」は、データの1行目をタイトルにするかどうか True/Falseで表したもの。もしTrueだと1行目をタイトルとして出力する。
下の例では、3列目が「転職」のデータを表示する関数例です。
Importrange関数とQuery関数の併用は、詳しく勉強すると、かなりスプレッドシート上のデータの使い方が効率的になります。「QUERY関数の参照にimportrangeを使う」で詳しく解説しているので、参考にしてみてください。
Importrange関数とFilter関数
Importrange関数で出力されたデータを絞り込むのにFilter関数も使えます。ただし、自由に扱いやすい、さきほどのQuery関数のほうがおすすめです。使い方は次のようになります。
=Filter( Importrange("シートID", "範囲"), Index( Importrange("シートID", "範囲"), 0, 列番号) = "キー")
Index関数でImportrangeから出力したデータのうちの、フィルターをかける列を取得します。
下の例では、3列目が「転職」のデータを表示する関数例です。Query関数と全く同じ出力になります。
Importrange関数とVlookup関数
Importrange関数で出力されたデータのから、1列目の中で検索キーに一致する行のうち、指定した列番号のデータを取得するときに、Vlookup関数を使用します。(※正直使用用途がなく、Query関数を使用したほうが使いやすい)
=Vlookup("キー", Importrange("シートキー", "範囲"), 列番号, false)
下の例では、一番左側の列が「転職」で、左から2列目のデータ(今回の場合pv数)を表示しています。
Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]