Googleスプレッドシートで大量のデータを扱っていると、「特定の条件に合うデータだけを抽出したい」「並び替えや集計を簡単にしたい」と思うことはありませんか?
そんな時に便利なのが、QUERY関数です。
まるでデータベースのように、表から条件を指定して欲しい情報だけを取り出すことができるのが特徴です。
この記事では、事務職や小売・サービス業での実務を想定しながら、QUERY関数の基本的な使い方を、初心者の方にもわかりやすく解説していきます。
QUERY関数って何ができるの?
QUERY関数をひとことで言うと、表形式のデータを検索・抽出・並び替え・集計できる関数です。
基本構文はこちら。
=QUERY(範囲, "クエリ文", [ヘッダー行数])
引数 | 内容 |
---|---|
範囲 | 抽出対象となるデータ範囲(例:A1:D100) |
クエリ文 | SQL風の文法で条件を指定(例:”SELECT A, B WHERE C = ‘売上'”) |
ヘッダー行数 | (省略可能)ヘッダーが何行あるか。1行なら「1」 |
この QUERY
関数の最大の特長は、「検索」「並び替え」「集計」「条件抽出」が一度にできるところです。
QUERY関数の基本:SELECTとWHEREの使い方
まずは、よく使う「SELECT」と「WHERE」について解説します。
例:売上データから「売上が1万円以上」のデータだけを抽出したい
日付 | 商品名 | 売上 | 担当者 |
---|---|---|---|
6/1 | りんご | 800 | 佐藤 |
6/2 | みかん | 1200 | 鈴木 |
6/3 | ぶどう | 15000 | 田中 |
6/4 | バナナ | 9800 | 佐藤 |
この表(A1:D5)から、「売上が1万円以上」の行だけを取り出すには、次のように書きます。
=QUERY(A1:D5, "SELECT A, B, C, D WHERE C >= 10000", 1)
ポイント
- 「SELECT A, B, C, D」→ 表の全列を選択
- 「WHERE C >= 10000」→ 売上(列C)が1万円以上
抽出結果

よくある失敗:列の指定は「A・B・C」などのアルファベット
QUERY関数では、列番号(1・2・3)ではなく、列のアルファベット(A・B・C)で指定します。
SELECT 1, 2 WHERE 3 >= 10000(エラーになります)
SELECT A, B WHERE C >= 10000
慣れないうちはここでつまずきがちなので、しっかり覚えておきましょう!
全部の列を抽出する場合は以下のような書き方でもOK
SERECT * WHERE C >=10000
文字列の条件抽出:担当者が「佐藤」の行だけを抽出
=QUERY(A1:D5, "SELECT A, B, C, D WHERE D = '佐藤'", 1)
文字列は '(シングルクォーテーション)
で囲みます。
抽出結果

あいまい検索したいときは?LIKEを使おう
WHERE
では、「完全一致」だけでなく、部分一致や前方一致などのあいまい検索も可能です。
そのときに使うのが LIKE
です。
例:「担当者名に『佐』が含まれる行」だけを抽出したい
=QUERY(A1:D5, "SELECT A, B, C, D WHERE D LIKE '%佐%'", 1)
%佐%
は、「どこかに『佐』という文字が含まれている」という意味になります。
つまり「佐藤」や「佐々木」なども対象になります。

LIKEで使えるワイルドカード
記号 | 意味 | 例 |
---|---|---|
% | 任意の文字列(0文字以上) | %佐% → 「佐」を含むすべて |
'_ | 任意の1文字(1文字だけ) | _藤 → 「佐藤」「伊藤」など |
例:担当者が「○藤さん」で終わる名前を検索
=QUERY(A1:D5, "SELECT A, B, C, D WHERE D LIKE '%藤'", 1)
→ 「佐藤」「斎藤」「加藤」など、「藤」で終わる担当者がヒットします。
試しに「藤」で終わる名前に変更し、上記関数を実行してみました👇

複数条件で抽出したいときは?
WHERE句では、ANDやORを使って複数の条件を組み合わせることができます。
例:「売上が1万円以上」かつ「担当者が田中」
=QUERY(A1:D5, "SELECT A, B, C, D WHERE C >= 10000 AND D = '田中'", 1)
→ どちらの条件も満たす行だけが抽出されます。

例:「売上が1万円以上」または「担当者が佐藤」
=QUERY(A1:D5, "SELECT A, B, C, D WHERE C >= 10000 OR D = '佐藤'", 1)
→ どちらかの条件に合っていればOK。

実務での活用アイデア
- 月別売上表から「今月の売上が1万円以上のデータ」だけを抽出して共有資料に貼る
- 顧客リストから「法人顧客」だけを抜き出す
- シフト表から「土日の勤務者」だけを表示して、チェックリストに使う
スプレッドシート内で完結するので、フィルターよりも柔軟に抽出・加工できるのが魅力です。
まとめ:QUERY関数を使えば、日々の集計作業がグッと楽になる!
QUERY関数は、一見難しそうに見えますが、使いこなせると本当に便利です。
特に、小売業やサービス業でよく使われる「売上管理表」「シフト表」「顧客名簿」などとの相性がバツグン。
手作業でやっていた絞り込み作業が、一瞬で済むようになります。
次回は、並び替え(ORDER BY)や集計(GROUP BY)について、実例を交えながら解説していきますので、ぜひチェックしてください!
おまけ:QUERY関数の基本構文一覧(よく使うものだけ)
文法 | 役割 | 例 |
---|---|---|
SELECT | 取得する列を指定 | SELECT A, B |
WHERE | 条件を指定 | WHERE C >= 10000 |
AND / OR | 複数条件の指定 | WHERE C >= 10000 AND D = ‘田中’ |
ORDER BY | 並び替え | ORDER BY C DESC |
LIMIT | 取得件数を制限 | LIMIT 5 |
LABEL | 列名を変更 | LABEL A ‘日付’, B ‘商品名’ |