
GoogleスプレッドシートのQUERY関数を使うと、大量のデータから必要な情報だけを抽出したり、並べ替えたり、集計したりと、さまざまなデータ操作を行うことができます。この記事ではQUERY関数で最も基本となる、「SELECT句」について解説しているので、ぜひ参考にしてみてください。
QUERY関数とは?

QUERY関数は、指定した「データ範囲」に対して「処理・命令(クエリ)」を実行することで、柔軟にデータを抽出したり、加工したりできる関数です。
中でもSELECT句は、「どの列を抽出するか」を指定する最も基本的な役割を持っています。
QUERY関数の引数:(データ, クエリ, [見出し])
📖 第3引数「見出し」とは?
第3引数「見出し」には、データ範囲の何行目までが見出し(ヘッダー)かを指定できます。省略するか「-1」を指定すると、自動で見出し行を判定してくれるため、基本的に省略でOKです。
- 例:
=QUERY(A1:B6, "SELECT *", 2)- (見出しが2行あるデータで「2」を指定すると、3行目からをデータとして処理します)
SELECT句の基本の使い方(列の抽出)
特定の列を抽出する(単一・複数)

データ範囲から、指定した列だけを抽出します。複数列を指定したい場合は、カンマ(,)で区切って記述します。
- A列を抽出:
=QUERY(A1:B5, "SELECT A") - A列とB列を抽出:
=QUERY(A1:B5, "SELECT A, B")
⚠️ IMPORTRANGE関数や配列と組み合わせる場合:
IMPORTRANGE関数などで別ファイルを参照したり、中括弧 {}を使って「複数シート」を結合した仮想のデータ領域を作成している場合、列名は A, B ではなく Col1, Col2 のように指定します。(例:SELECT Col1, Col2)
すべての列を抽出する

データ範囲に含まれるすべての列を抽出したい場合は、アスタリスク(*)を指定します。
例:=QUERY(A1:B5, "SELECT *")
💡 ポイント:
すべての列を抽出したい場合、SELECT句自体を省略して記述することも可能です。
表示する列の順番を入れ替える

SELECT句に記述した列の順番が、そのまま抽出結果の並び順になります。
例:=QUERY(A1:B5, "SELECT B, A")
SELECT句の応用例
四則演算(足し算、掛け算など)を組み合わせる

SELECT句で抽出した数値データに対して、直接「足し算・引き算・掛け算・割り算」を行うことができます。カンマで区切ると複数の計算結果を同時に出力できます。
- 単一の計算例:
=QUERY(A1:B5, "SELECT A, B*2")- (「A列」と、「B列の数値を2倍した結果」を抽出)
- 複数の計算例:
=QUERY(A1:B5, "SELECT A, B*2, B*3")- (「A列」と、「B列を2倍した値」、「3倍した値」を同時に抽出)
集計関数(SUM, COUNTなど)を組み合わせる

抽出した数値データに対して、合計やカウントなどの集計処理を直接指定することもできます。
- 例:
=QUERY(A1:B5, "SELECT sum(B), max(B)")- (B列の「合計値」と「最大値」を抽出)
【よく使う集計関数】
SUM():合計値を返します。AVG():平均値を返します。COUNT():データの個数を返します。MAX():最大値を返します。MIN():最小値を返します。
スカラー関数(日付や文字列の加工)を組み合わせる
スカラー関数を使うと、日付を「年」だけに加工したり、文字列を「大文字」に変換して抽出したりできます。
①日時の加工

データ範囲からA列を抽出し、「年月」に加工して返します。
例:=QUERY(A1:B5,"SELECT year(A),month(A)+1")
※MONTH()は1月を「0」として数える仕様のため、+1 を加算します。
【日時を加工するスカラー関数】
YEAR():日付から、年の値を返します。MONTH():日付から、ゼロから始まる月の値を返します。(例:1月なら0、12月なら11)DAY():日付から、日の値を返します。HOUR():時刻を含む日時から、時間の値を返します。MINUTE():時刻を含む日時から、分の値を返します。SECOND():時刻を含む日時から、秒の値を返します。MILLISECOND():時刻を含む日時から、ミリ秒部分を返します。QUARTER():日付から、四半期を1から4の数字で返します。DAYOFWEEK():日付から、曜日を1(日曜日)から7(土曜日)の数字で返します。NOW():GMTタイムゾーン(日本はGMT+9)で、現在の日時を表す日時値を返します。DATEDIFF():2つの日付値または日時値の差を、日数で返します。TODATE():指定された値を日付値に変換します。
②文字列の加工

データ範囲からA列を抽出し、「大文字」に加工して返します。
例:=QUERY(A1:B5,"SELECT upper(A)")
【文字列を加工るスカラー関数】
LOWER():文字列をすべて小文字に変換して返します。UPPER():文字列をすべて大文字に変換して返します。
QUERY関数のその他のクエリ
今回はSELECT句を中心に解説しましたが、QUERY関数で使えるクエリには、他にも以下のようなものがあります。
- SELECT句:特定の列を指定した順序で抽出します。(この記事で解説)
- WHERE句:指定した条件を満たすデータのみを抽出します。(詳細記事はこちら)
- GROUP BY句:指定した列のグループごとにデータを集計します。(詳細記事はこちら)
- PIVOT句:指定した列の値を横方向に展開し、クロス集計表を作成します。(詳細記事はこちら)
- ORDER BY句:データを特定の列の値で並べ替えます。(詳細記事はこちら)
- LIMIT句:抽出する行数を指定した数に制限します。(詳細記事はこちら)
- OFFSET句:指定した数の最初の行をスキップします。(詳細記事はこちら)
- LABEL句:抽出した列のヘッダー名を任意の名前に変更します。(詳細記事はこちら)
- FORMAT句:特定の列の日付や数値などの表示形式を設定します。(詳細記事はこちら)
- OPTIONS句:ヘッダーの行数や特定の書式設定を適用しないなどの追加オプションを設定します。