QUERY関数の使い方!基礎から応用までわかりやすく解説

QUERY関数の基礎から応用まで!使い方を徹底解説【保存版】
mono
mono
こんにちは、monoです。

スプレッドシートでしか使えない関数はいくつかありますが、代表的なのはなんと言っても「QUERY関数」です。

SQLライクにデータの集計・分析ができるQUERY関数は、スプレッドシートにおけるデータ周りの業務を大きく改善してくれます。

当記事では、

QUERY関数って?何ができるの?

どうやったら使えるの?

という方向けに、

  1. QUERY関数の基礎知識
  2. QUERY関数の構文について
  3. QUERY関数の関連記事

について解説します。

目次

QUERY関数の基礎知識

まずはQUERY関数の基礎知識からお話します。

QUERY関数は表計算ソフトの中でGoogleスプレッドシートでしか使うことのできない「特別な関数」です。

QUERY関数は以下の公式で構成されています。

=QUERY(範囲,"select 出力データ列 where 条件式 group by グルーピング列 order by ソート条件 limit 出力データ数 offset 開始行 label 列名")

QUERY関数はDB操作に使われるSQL文をベースに作られています。

QUERY関数を使えばデータのフィルタリングやソート、グルーピングなどが驚くほど簡単にできるようになります。

QUERY関数の構文

QUERY関数の構文は以下8つの要素に分解して考えると理解しやすいです。

  1. 範囲の指定・・・参照するデータの範囲
  2. select文・・・出力データ列の指定
  3. where句・・・フィルタリング
  4. group by句・・・グルーピング、集計
  5. order by句・・・ソート
  6. limit句・・・データ量の指定
  7. offset句・・・繰り下げ行の指定
  8. label句・・・列名の指定

それぞれの要素について解説します。

範囲の指定

QUERY関数で参照する「データの範囲」を指定する要素です。

この要素で参照していないところにあるデータは、どう頑張っても引っ張ってくることはできません。

列や行を追加すると、気づいたら指定範囲が足りなくなっていることなどあるので注意しましょう。

別のスプレッドシートファイルからデータを参照したい場合は「IMPORTRANGE関数」を使えば引っ張ってくることができます。

複数のシートからデータを引っ張ってきて結合したい場合は、データ範囲を以下のように指定することで、複数シートを結合して1つのシートとしてQUERY関数を使用することができます。

  • 縦の結合:{範囲A;範囲B;範囲C…}
  • 横の結合:{範囲A,範囲B,範囲C…}

複数範囲・複数シートの結合方法については下記の記事で詳しく解説しています。

あわせて読みたい
スプレッドシートの複数シート・範囲を集約・結合してまとめるには?【QUERY関数】 QUERY関数で範囲指定するときに、「データを1箇所にまとめるのめんどくさいな〜」と思ったことはありませんか? 実は、データを1箇所にまとめなくても複数範囲・複数シ...

select文:出力列の指定

select句では「出力するデータ列」ができます。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select C,A")

以下のような結果が得られます。

select句で指定列が、指定した順番どおりに出力されていることがわかりますね。

このようにselect文では、指定したデータ範囲内で「どの列のデータを出力するか」ということを指定することができます。

where句:フィルタリング

where句では「データのフィルタリング」を指定します。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select * where C='果物'")

以下のような結果が得られます。

種別が「果物」だけにフィルタリングして出力されていることが分かります。

where句については下記の記事で詳しく解説しています。

あわせて読みたい
【QUERY関数】where句を使って抽出条件を指定しよう【文字列・数字】 EXCELではなくスプレッドシートを使う理由の1つに、「スプレッドシートではQUERY関数が使えるから」という人も多いのではないでしょうか。 当記事では、 「QUERY関数が...

group by句:グルーピング・集計

group by句では「データのグルーピング・集計」ができます。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select C,AVG(B) group by C")

以下のような結果が得られます。

種別ごとにグルーピングされて、各種別の平均単価が計算されていることが分かります。

group by句については下記の記事で詳しく解説しています。

あわせて読みたい
【QUERY関数】group by句でデータを集計する【超便利】 データを集計するときにCOUTIFS()やSUMIFS()などを使う方が多いかと思いますが、実はそれ全部QUERY関数でできます。 フィルタリングやソートした状態でデータを出力でき...

order by句:ソート

order by句では「データのソート」ができます。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select * order by B desc")

以下のような結果が得られます。

単価が高い順(降順)にソートされていることが分かります。ちなみに、安い順(昇順)にソートしたい場合は、「desc」の部分を「asc」に書き換えればOKです。

order by句については下記の記事で詳しく解説しています。

あわせて読みたい
【QUERY関数】order by句で並び替え・ソートする方法【昇順・降順】 QUERY関数で出力したデータ、「順番がぐちゃぐちゃでわかりにくい」と思ったことはありませんか? order by句を使えばデータをソートできるので、とても見やすい形で出...

limit句:出力量の制限

limit句では「データの出力量」を指定できます。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select * offset 5")

以下のような結果が得られます。

データの出力量が5行に制限されていることが分かります。

limit句については下記の記事で詳しく解説しています。

あわせて読みたい
【QUERY関数】不要な行を捨てる方法【limit・offset】 QUERY関数を使う際に、「出力データのいらない行をバッサリ切り捨てたいな〜」と思ったことはありませんか? limit句とoffset句を使えば、いらないデータをスキップした...

offset句:行の繰り下げ

offset句では「出力データの開始行」を指定できます。

例えば、以下のようなデータセットがあるとします。

このデータセットに対して、以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select * offset 5")

以下のような結果が得られます。

データの開始行が5行繰り下げられていることが分かります。

offset句については下記の記事で詳しく解説しています。

あわせて読みたい
【QUERY関数】不要な行を捨てる方法【limit・offset】 QUERY関数を使う際に、「出力データのいらない行をバッサリ切り捨てたいな〜」と思ったことはありませんか? limit句とoffset句を使えば、いらないデータをスキップした...

label句:列名の変更

label句では「出力データの列名を変更」することができます。

もともとのデータセットでは「単価」という列名だったとしても、label句で「価格」と指定すれば、出力データでは「価格」と表示されるようになります。

先ほどのデータセットを再び用意して、

以下のQUERY関数を実行すると、

=QUERY(A1:C11,"select A,B label B '価格'")

以下のような結果が得られます。

列の先頭に記述される列名が「単価」→「価格」へと変わりました。

label句はgroup by句などを利用したときに「sum 単価」などにも適用することができるので、見た目を気にする人はlabel句を使って「sum 単価」→「売上」などに変更してみてください。

まとめ

今回はQUERY関数の使い方について解説しました。

QUERY関数は他の関数と比べてとても多機能な関数です。初めは苦労するかもしれませんが、慣れてきたら業務でとても役立つので習得することをおすすめします。

では、また。

QUERY関数の解説本【kindle unlimitedで無料】

あわせて読みたい
Googleスプレッドシートの使い方の勉強におすすめの本10選【実用書・入門書】 スプレッドシートの本選びで、以下のような悩みを抱えていませんか? スプレッドシートの使い方を書籍で勉強したいけど、どれが良い本か分からない 時間に余裕がないか...

あわせて読みたい
GASの勉強におすすめの入門本ランキング15選!【学習方法も解説】 「GAS(Google Apps Script)を勉強したいけど勉強方法がわからない、体系的にまとまっている学習書や良書を知りたい」と困っていませんか? 「プログラミングは体系的...

目次
トップへ
目次
閉じる