cellio

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&"'" のように、& 記号を使ってクエリの文字列とセル参照を結合します。

あわせて読みたい