Sheet基本
QUERY関数 完全ガイド
QUERY関数 完全ガイド
SQLライクな文法でデータを自在に操作する
スプレッドシートの中でSQLを書く。FILTER+SORT+SUMIFSを1本の式でまとめられる最強の集計・抽出関数。
GASとの関係:QUERYの発想がBigQueryやDB操作に直結する
QUERYで使うSQL文法は、GASからBigQueryやCloud Spannerを操作するときの基礎になります。スプレッドシートでSQLの考え方に慣れておくと、データ基盤への移行がスムーズになります。
GASで自動化を学ぶ →目次
QUERY関数とは
QUERY関数はGoogleスプレッドシート独自の関数で、Google Visualization API Query Language(SQLに似た文法)を使ってデータを操作します。フィルタ・ソート・集計・列選択を1本の式でまとめて書けます。
基本構文
=QUERY(データ範囲, クエリ文字列, [ヘッダー行数])
よく使うクエリ文法
| 句 | 役割 | 例 |
|---|---|---|
| SELECT | 返す列を指定 | SELECT A, B, C |
| WHERE | 条件で行を絞り込む | WHERE A = ‘東京’ |
| ORDER BY | 並べ替え | ORDER BY C DESC |
| GROUP BY | グループ集計 | GROUP BY A |
| LIMIT | 返す行数を制限 | LIMIT 10 |
| LABEL | 列ヘッダーを指定 | LABEL B ‘売上’ |
実務でよく使うパターン
パターン1:列を選んで表示(SELECT)
// A・C・D列だけを返す(B列は除外)
=QUERY(A1:F100, "SELECT A, C, D", 1)
パターン2:条件で絞り込む(WHERE)
// A列が「東京」の行を返す
=QUERY(A1:F100, "SELECT * WHERE A = '東京'", 1)
// 数値条件(C列が50000以上)
=QUERY(A1:F100, "SELECT * WHERE C >= 50000", 1)
// 複数条件(AND)
=QUERY(A1:F100, "SELECT * WHERE A = '東京' AND C >= 50000", 1)
パターン3:セル参照を条件に使う
// E1にエリア名を入れると動的にフィルタ
=QUERY(A1:F100, "SELECT * WHERE A = '"&E1&"'", 1)
文字列条件はシングルクォートで囲み、セル参照は & で連結します。
パターン4:グループ集計(GROUP BY + SUM)
// エリアごとの売上合計(SUMIFSを1本で書ける)
=QUERY(A1:C100, "SELECT A, SUM(C) GROUP BY A LABEL SUM(C) '売上合計'", 1)
パターン5:並べ替え(ORDER BY)
// C列(売上)の降順で並べて上位10件
=QUERY(A1:F100, "SELECT * ORDER BY C DESC LIMIT 10", 1)
パターン6:FILTER+SORT+列選択をまとめて
// 「東京」のA・B・C列を、C列降順で、上位20件
=QUERY(A1:F100, "SELECT A, B, C WHERE A='東京' ORDER BY C DESC LIMIT 20", 1)
QUERYで詰まりやすいポイント
| 症状 | 原因 | 対処 |
|---|---|---|
| #VALUE! | 文字列条件をシングルクォートで囲んでいない | WHERE A = ‘東京’ のようにシングルクォートを使う |
| 列名がA,B,Cで通じない | ヘッダー行数の指定が合っていない | 第3引数でヘッダー行数(通常1)を明示する |
| 日付条件が動かない | 日付はdate ‘YYYY-MM-DD’形式が必要 | WHERE B >= date ‘2024-01-01’ |
| セル参照が動かない | クエリ文字列の外に出せていない | “WHERE A='”&E1&”‘” の形で連結する |
QUERYとFILTERの使い分け
| 状況 | 向いている関数 |
|---|---|
| 列の選択・並べ替え・集計を同時にやりたい | QUERY |
| 複雑な条件式(AND/OR/不等号)で絞り込みたい | FILTER(より柔軟) |
| 他の関数(SORT・UNIQUEなど)と組み合わせたい | FILTER |
| グループ別集計(GROUP BY)をしたい | QUERY一択 |
この知識をGASで活かす
QUERYで書いたSQL文法の考え方は、GASからBigQueryやデータベースを操作するときに直接役立ちます。スプレッドシートでSQLを練習する場として使えます。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
