GoogleスプレッドシートのQUERY関数の使い方:初心者向け基本ガイド
Googleスプレッドシートの最強関数QUERYの使い方を徹底解説。列の抽出、条件フィルタ(where)、並び替え、集計、セル参照の組み合わせまで具体例で分かりやすく解説します。
著者 Ayoub Farid · · 4 分で読めます
QUERY(クエリ)は、Googleスプレッドシートの中で最も強力な関数の一つです。SQLに似たシンプルな構文を使って、指定した列の抽出、行の絞り込み、並び替え、グループ化、集計などを、たったひとつの数式でまとめて実行できます。なお、Excelにはこれと完全に同じ機能を持つ単体の関数はありません。
構文
=QUERY(data, query, [headers])
- data(データ): 対象となる表のセル範囲(例:
A1:E500) - query(クエリ): 実行したい操作の指示文(ダブルクォーテーションで囲みます)
- headers(見出し): 見出し行の数(通常は 1 を指定)
列は通常の列記号(A, B, C…)を使って指定します。
特定の列を抽出する(Select)
=QUERY(A1:E500,"select A, C, E",1)
条件で行を絞り込む(Filter)
=QUERY(A1:E500,"select * where C = 'Coffee'",1)
=QUERY(A1:E500,"select * where E > 100",1)
=QUERY(A1:E500,"select * where C = 'Coffee' and E > 100",1)
ダブルクォーテーションで囲んだクエリ指示文の中では、文字列はシングルクォーテーション(')で囲みます。
データを並べ替える(Sort)
=QUERY(A1:E500,"select * order by E desc",1)
グループ化して合計する(1つの数式でピボットテーブルを作成)
=QUERY(A1:E500,"select C, sum(E) group by C order by sum(E) desc",1)
カテゴリー別の売上合計を算出し、売上が大きい順に並べ替えます。
表示件数を制限する(Limit)
=QUERY(A1:E500,"select A, E order by E desc limit 5",1)
売上上位5件(トップ5)のみを抽出します。
条件にセルの値を使用する
=QUERY(A1:E500,"select * where C = '"&H1&"'",1)
& を使ってセルの値をクエリ文字列と結合します。文字列を参照する場合は、前後にシングルクォーテーションを残す必要があります。
日付を条件にする
=QUERY(A1:E500,"select * where B >= date '2026-03-01'",1)
日付を条件に指定する場合は、date 'yyyy-mm-dd' の形式を使用します。
使いこなすためのポイント
- 各列のデータ型は統一してください。数値と文字列が混在していると、結果でデータが空白になる原因になります。
- 最初はシンプルな指定から始めて、句を1つずつ追加していくのが失敗しないコツです。
- 句の記述順序は厳密に決まっています: select、where、group by、order by、limit の順で記述します。
Excelユーザーの方は、FILTER 関数に加えて SUMIFS や SORT を組み合わせることで、ほぼ同様の処理を実現できます。
よくある質問
GoogleスプレッドシートのQUERY関数は何ができますか?
SQLに似たコマンド体系を使って、データの抽出、絞り込み、並び替え、グループ化、集計などを自由に行うことができます。
ExcelにもQUERY関数はありますか?
直接対応する関数はありません。Excelでは FILTER関数、SORT関数、SUMIFS関数、ピボットテーブル、またはPower Queryを使って同様の処理を行います。
QUERY関数の結果に空白のセルが表示されるのはなぜですか?
同じ列内に数値と文字列が混在している可能性があります。QUERY関数は列内で最も多いデータ型を優先して処理するため、それ以外のデータ型は空白として返されます。
QUERY関数内でセルの値を参照するにはどうすればよいですか?
"where C = '"&H1&"'" のように、& 記号を使ってクエリの文字列とセル参照を結合します。