GoogleスプレッドシートのIMPORTRANGE関数とQUERY関数、さらにこれらを組合せて使うことで、別シートのデータをリアルタイムに読み込み、必要な情報だけを自動で抽出・集計することができ、業務が効率化されます。
IMPORTRANGE関数(=別シートのデータを読み込む)
業務が複雑になると、データが複数のスプレッドシートに分散しがちです。
そんな時に活躍するのがIMPORTRANGE
関数。
この関数を使うと、他のスプレッドシートから指定した範囲のデータを、今開いているシートにリアルタイムで読み込むことができます。
基本的な構文
IMPORTRANGE
関数の構文はとてもシンプル。
=IMPORTRANGE("スプレッドシートのURL", "シート名!範囲")
引数の説明
- スプレッドシートのURL: データを読み込みたいスプレッドシートのURLをダブルクォーテーション(
"
)で囲んで指定します。ブラウザのアドレスバーに表示されるURLをそのままコピー&ペーストしてください。 - シート名!範囲: 読み込みたいデータの場所を
「シート名」!「セル範囲」
の形式で指定します。例えば、「売上データ」という名前のシートのA1セルからE100セルまでを読み込みたい場合は、"売上データ!A1:E100"
と記述します。
初回利用時の「アクセス許可」
初めて他のスプレッドシートからデータを読み込む際、セルに#REF!
というエラーが表示されます。
これはエラーではなく、セキュリティのための確認ステップです。
#REF!
エラーが表示されたセルにカーソルを合わせます。- 表示される「アクセスを許可」という青いボタンをクリックします。
一度許可すれば、それ以降は同じファイルからのデータ読み込みがスムーズに行われます。
QUERY関数(=必要な情報だけを抜き出す)
QUERY
関数は、まるでデータベースを操作する言語(SQL)のように、シート上のデータに対して「抽出」「集計」「並べ替え」といった柔軟な命令を出せる、非常に強力な関数です。
基本的な構文
=QUERY(データ範囲, "クエリ")
引数の説明
- データ範囲: 操作の対象となるセル範囲を指定します。(例:
A1:E100
) - クエリ: どのような操作をしたいかを命令文で記述します。この命令文はGoogle Visualization API クエリ言語というルールに基づいており、ダブルクォーテーション(
"
)で囲んで記述します。
よく使うクエリ句
さしあたってまずは以下の3つを覚えると、様々なデータ操作が可能になります。
クエリ句 | 意味 | 使用例 |
---|---|---|
SELECT | どの列を抽出するか指定します。 | SELECT A, C, D (A列とC列とD列を抽出)<br> SELECT * (すべての列を抽出) |
WHERE | どの行を抽出するか条件を指定します。 | WHERE C = '東京' (C列が「東京」の行だけ抽出)<br> WHERE D >= 10000 (D列が10000以上の行だけ抽出) |
ORDER BY | どの列を基準に並べ替えるか指定します。 | ORDER BY D DESC (D列を降順(大きい順)で並べ替え)<br> ORDER BY A ASC (A列を昇順(あいうえお順)で並べ替え) |
また、これらを組み合わせることで、「東京支社の売上1万円以上のデータを、売上が高い順に、担当者名と商品名だけ表示する」といった複雑な抽出も可能になります。
IMPORTRANGEとQUERYを組み合わせる
IMPORTRANGE
関数とQUERY
関数を組み合わせることで、さらにGoogleスプレッドシートの真価が発揮されます。
この2つを組み合わせれば、「別のファイルからデータをリアルタイムに読み込み、その中から必要なデータだけを、条件で絞り込んで、並べ替えた状態で表示する」という一連の流れを自動化することができます。
組み合わせ構文
QUERY
関数のデータ範囲の部分に、IMPORTRANGE
関数をそのまま入れてしまいます。
=QUERY(IMPORTRANGE("スプレッドシートのURL", "シート名!範囲"), "クエリ")
組み合わせ時の注意点
IMPORTRANGE
で読み込んだデータに対してQUERY
関数を使う場合、SELECT
句などで列を指定する方法が通常と異なります。
A, B, C
のような列名ではなく、**Col1, Col2, Col3
**のように指定する必要があります。Col1
が読み込んだ範囲の1列目、Col2
が2列目…となります。
具体例:各支店の売上データを本社用レポートに自動集計する
- 読み込みたいデータ:別ファイルの「支店別売上シート」にA列:担当者名、B列:支店名、C列:売上額のデータがあるとします。
- 実行したいこと:本社用のレポートシートに、「東京支店」の「売上5万円以上」のデータを「売上が高い順」で表示したい。
- 入力する関数:
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx", "支店別売上シート!A:C"), "SELECT Col1, Col3 WHERE Col2 = '東京' AND Col3 >= 50000 ORDER BY Col3 DESC")
この関数を一度入力しておけば、元の「支店別売上シート」のデータが更新されるたびに、本社用レポートの集計結果も自動で最新の状態に保たれます。もう、面倒なコピペや手作業での集計は必要ありません。IMPORTRANGE
関数とQUERY
関数は、単なる便利関数ではありません。これらは、あなたのデータ管理やレポーティング業務のあり方を根本から変える力を持っています。
この2つの関数を使いこなすことで、
- 手作業によるコピペや集計作業からの解放
- ヒューマンエラーの撲滅
- 常に最新のデータに基づいた意思決定
が可能になります。