スプレッドシートで大量のデータを扱う際、特定の情報を抜き出したり、カテゴリごとに集計したりする作業に追われていませんか。
VLOOKUPやSUMIFS、FILTERといった関数をいくつも組み合わせ、数式が複雑になりすぎて解読不能…。
そんな経験、誰しもあるはずです。
実は、その悩み、たった一つの「QUERY(クエリ)関数」で、驚くほどスマートに解決できるかもしれません。
QUERY関数は、まるでデータベースを操作するように、スプレッドシート上のデータを自由自在に抽出・集計・並べ替えできる、まさに「最強」と呼ぶにふさわしい関数です。
SQL(データベース言語)の知識がなくても、基本的な使い方を覚えれば、あなたのデータ分析業務は劇的に効率化されるでしょう。
この記事では、2026年1月時点の最新情報に基づき、QUERY関数の基本から実践的な応用テクニックまで、豊富な具体例と共に徹底解説します。
この記事を読み終える頃には、あなたもQUERY関数を使いこなし、データ活用の新たな扉を開いているはずです。
QUERY関数とは? – スプレッドシートをデータベースに変える魔法
QUERY関数は、Googleスプレッドシートに搭載されている、非常に強力なデータ操作関数です。その最大の特徴は、データベース言語である「Google Visualization API Query Language」を使い、シート上のデータを柔軟に扱える点にあります。「データベース言語」と聞くと難しく感じるかもしれませんが、心配は不要です。基本的なSELECT文(命令文)の書き方さえ覚えれば、誰でも直感的に使いこなすことができます。
基本構文
QUERY関数の基本的な構文は、以下の3つの要素で構成されます。
QUERY(データ, クエリ, [見出し])
- データ: 操作の対象となるセル範囲を指定します。(例: A1:E100)
- クエリ: どのような操作をしたいかを命令するテキスト(文字列)です。ここがQUERY関数の心臓部であり、ダブルクォーテーション(“”)で囲んで記述します。(例: “SELECT A, B WHERE C > 100″)
- [見出し]: データ範囲に含まれる見出し行の数を指定するオプションの引数です。通常は「1」を指定することが多いですが、省略するとスプレッドシートが自動的に判断します。
最初のステップ: すべてのデータを取得する
まずは、最もシンプルな使い方を見てみましょう。以下の売上データ(シート名: ‘売上データ’、範囲: A1:E11)があるとします。
(サンプルデータ)
| 日付 (A) | 商品カテゴリ (B) | 担当者 (C) | 単価 (D) | 数量 (E) |
|---|---|---|---|---|
| 2026/1/5 | 文房具 | 佐藤 | 100 | 10 |
| 2026/1/6 | 食品 | 鈴木 | 500 | 5 |
| 2026/1/7 | 飲料 | 高橋 | 150 | 20 |
| … | … | … | … | … |
別のシートに、このデータをそのまま表示させたい場合、以下の数式を入力します。
=QUERY('売上データ'!A1:E11, "SELECT *", 1)
この数式の“SELECT *”というクエリは、「すべての列(*)を選択(SELECT)する」という意味です。これにより、指定したデータ範囲(’売上データ’!A1:E11)の内容が見出し行を含めてそのまま出力されます。これは、ただデータをコピーするのと同じように見えますが、QUERY関数の強力な機能への第一歩です。ここから条件を追加していくことで、データの可能性が無限に広がります。
このように、QUERY関数は「どのデータから」「どのような条件で」「何をしたいか」を順番に記述していくだけで、複雑な処理を実行できる非常に優れた関数なのです。
QUERY関数の基本操作 – SELECTとWHEREでデータを自由自在に抽出
QUERY関数の最も基本的かつ強力な機能が、SELECT句による「列の選択」とWHERE句による「行の絞り込み」です。この2つをマスターするだけで、データ抽出作業の大半をカバーできます。
SELECT句: 必要な列だけをスマートに取得
前述の例では “SELECT *” を使ってすべての列を取得しましたが、特定の列だけが必要なケースは非常に多いです。例えば、売上データから「日付」「商品カテゴリ」「単価」の3つの列だけを抽出したい場合、クエリは以下のようになります。
=QUERY('売上データ'!A1:E11, "SELECT A, B, D", 1)
このように、SELECTの後にカンマ区切りで列のアルファベットを指定するだけで、必要なデータだけを瞬時に取り出すことができます。列の順番を入れ替えて “SELECT D, B, A” のように記述すれば、出力される列の順序を自由に変更することも可能です。もう元データをコピーして、不要な列を一つずつ削除する必要はありません。
WHERE句: 条件に一致する行だけをフィルタリング
次に、データを行単位で絞り込むWHERE句の使い方を見ていきましょう。WHERE句は、SELECT句の後ろに記述し、「どの行を残すか」という条件を指定します。
1. 数値で絞り込む
例えば、「数量(E列)が30個以上の売上」データだけを抽出したい場合は、以下のように記述します。
=QUERY('売上データ'!A1:E11, "SELECT * WHERE E >= 30", 1)
> (より大きい)、< (より小さい)、= (等しい)、<> (等しくない)といった比較演算子を使って、柔軟な条件設定が可能です。
2. テキストで絞り込む
「商品カテゴリ(B列)が『文房具』のデータ」を抽出する場合は、以下のように記述します。
=QUERY('売上データ'!A1:E11, "SELECT * WHERE B = '文房具'", 1)
重要なポイントは、テキスト(文字列)を条件にする際は、値をシングルクォーテーション(‘)で囲む必要がある点です。これを忘れるとエラーになるので注意しましょう。
3. 複数の条件で絞り込む (AND / OR)
QUERY関数の真価は、複数の条件を組み合わせられる点にあります。「商品カテゴリが『飲料』かつ担当者が『田中』さん」のデータを抽出したい場合は、ANDを使います。
=QUERY('売上データ'!A1:E11, "SELECT * WHERE B = '飲料' AND C = '田中'", 1)
一方、「担当者が『佐藤』さんまたは『鈴木』さん」のデータを抽出したい場合は、ORを使います。
=QUERY('売上データ'!A1:E11, "SELECT * WHERE C = '佐藤' OR C = '鈴木'", 1)
このように、SELECT句とWHERE句を組み合わせることで、FILTER関数やIF関数をネスト(入れ子に)することなく、シンプルかつ直感的に目的のデータセットを作成できます。これが、多くの熟練者がQUERY関数を愛用する理由の一つです。
データ集計もお手の物 – GROUP BYとORDER BYで分析を加速
データの抽出に慣れたら、次は集計と並べ替えに挑戦してみましょう。GROUP BY句を使えばカテゴリ別の集計が、ORDER BY句を使えば結果の並べ替えが簡単に行えます。これらを使いこなすことで、単なるデータ抽出から一歩進んだ「データ分析」が可能になります。
GROUP BY句: データをグループ化して集計する
GROUP BY句は、特定の列の値を基準にデータをグループ化し、それぞれのグループに対して集計関数を適用する機能です。例えば、「商品カテゴリ(B列)ごとの売上合計」を算出したい場合、以下のように記述します。
=QUERY('売上データ'!A1:E11, "SELECT B, SUM(D) * SUM(E)", 1)
おっと、これではエラーが出てしまいます。集計関数(SUM, COUNT, AVGなど)を使う際は、「どの列を基準にグループ化するか」を明示する必要があります。正しくは以下の通りです。
=QUERY('売上データ'!A1:E11, "SELECT B, SUM(D * E) GROUP BY B", 1)
このクエリのポイントは2つあります。
SUM(D * E): QUERY関数内では、列同士の計算が可能です。ここでは単価(D列)と数量(E列)を掛け合わせた売上金額を計算し、それを合計(SUM)しています。GROUP BY B: 商品カテゴリ(B列)の値(’文房具’, ‘食品’, ‘飲料’)ごとにグループを作成し、そのグループ内でSUM(D * E)の計算を実行するよう命令しています。
これにより、ピボットテーブルを使わなくても、関数だけでカテゴリ別のクロス集計が実現できます。
よく使われる集計関数:
COUNT(): データ(行)の個数を数えるSUM(): 数値の合計を計算するAVG(): 数値の平均値を計算するMAX(): 数値の最大値を取得するMIN(): 数値の最小値を取得する
ORDER BY句: 結果を特定の順序に並べ替える
集計した結果や抽出したデータを、特定の順序で並べ替えたいケースは多いでしょう。そこで役立つのがORDER BY句です。例えば、先ほど算出した「カテゴリ別の売上合計」を、売上が高い順に並べたい場合は以下のように記述します。
=QUERY('売上データ'!A1:E11, "SELECT B, SUM(D * E) GROUP BY B ORDER BY SUM(D * E) DESC", 1)
ORDER BY SUM(D * E): 集計結果であるSUM(D * E)の値を基準に並べ替えることを指定します。DESC: 降順(大きいものから小さいものへ)を意味します。指定しない場合やASCを指定した場合は、昇順(小さいものから大きいものへ)となります。
これにより、どのカテゴリが最も売上に貢献しているかが一目でわかります。ORDER BY句はGROUP BY句がない単純なデータ抽出でももちろん使用可能です。例えば、「日付が新しい順」にデータを並べたい場合は、"SELECT * ORDER BY A DESC"のように記述します。
これらの句を組み合わせることで、データ分析の幅は格段に広がります。ぜひ色々な組み合わせを試してみてください。
QUERY関数をさらに使いこなす応用テクニック
基本操作をマスターしたら、さらに便利な応用テクニックを覚えて、QUERY関数を完全に自分のものにしましょう。ここでは、実務で特に役立つ3つの句と、他の関数との連携について解説します。
LIKE句: あいまい検索で部分一致データを抽出
WHERE句の = は完全一致しか検索できませんが、LIKE句とワイルドカード(%)を使えば、特定の文字を含むデータを抽出する「部分一致検索」が可能です。
例えば、「商品名に『セット』という単語が含まれるデータ」を抽出したいとします。(ここでは商品名がC列にあると仮定)
=QUERY(データ, "SELECT * WHERE C LIKE '%セット%'", 1)
%(パーセント記号)は、0文字以上の任意の文字列を表すワイルドカードです。’セット’の前後に配置することで、「前方一致」「後方一致」「部分一致」を表現できます。
'セット%': 「セット」で始まる'%セット': 「セット」で終わる'%セット%': 「セット」を含む
LABEL句: 出力結果の見出しを自由に変更
QUERY関数で集計を行うと、見出しが “sum 売上” や “count 個数” のように自動生成されてしまいます。これを分かりやすい日本語の見出しに変更したい場合にLABEL句が役立ちます。
先ほどのカテゴリ別売上集計の例に、LABEL句を追加してみましょう。
=QUERY('売上データ'!A1:E11, "SELECT B, SUM(D * E) GROUP BY B ORDER BY SUM(D * E) DESC LABEL SUM(D * E) '合計売上高'", 1)
このように、LABEL [対象の列や計算式] '[新しい見出し名]' と記述することで、出力結果のヘッダーを自由に変更できます。レポートや資料として整形する際に非常に便利な機能です。
IMPORTRANGEとの連携: 別のスプレッドシートをデータベース化
QUERY関数の真骨頂とも言えるのが、IMPORTRANGE関数との組み合わせです。IMPORTRANGE関数は、別のスプレッドシートからデータを読み込む関数ですが、これをQUERY関数の「データ」引数に指定することで、外部のシートを直接操作できます。
=QUERY(IMPORTRANGE("スプレッドシートのURL", "シート名!A1:E100"), "SELECT Col1, Col3 WHERE Col5 > 100", 1)
この方法の注意点は、列の指定が ‘A’, ‘B’ といったアルファベットではなく、’Col1′, ‘Col2’, ‘Col3’… となることです。これは、IMPORTRANGEがデータを配列として返すためです。このテクニックを使えば、マスターデータを一つのファイルに集約し、各担当者はそのデータを参照して自分のレポートを作成する、といった効率的なデータ管理体制を構築できます。
こうした高度なデータ連携や業務の自動化は、Google Workspaceの得意分野です。Google Workspaceでは、スプレッドシート、ドキュメント、Gmailといった各ツールがシームレスに連携し、AIアシスタント「Gemini」が作業を強力にサポートします。QUERY関数で抽出・集計したデータを元に、AIがプレゼン資料の構成案を考えたり、関係者への報告メールを自動作成したりと、生産性を飛躍的に向上させることが可能です。
まとめ: QUERY関数でデータ分析を新たなステージへ
この記事では、スプレッドシートのQUERY関数について、その基本から応用までを解説しました。最後に、重要なポイントを振り返りましょう。
- QUERY関数は、スプレッドシートのデータをデータベースのように扱える強力な関数です。
- SELECT句で必要な「列」を、WHERE句で条件に合う「行」を抽出できます。
- GROUP BY句と集計関数を使えば、ピボットテーブルのようなクロス集計が可能です。
- ORDER BY句で結果を並べ替え、LABEL句で見出しを整えることで、見やすいレポートが作成できます。
- IMPORTRANGE関数と組み合わせることで、複数のシートを横断したデータ分析も実現できます。
QUERY関数は、一見すると少し複雑に見えるかもしれませんが、一度その便利さを知ると手放せなくなるはずです。VLOOKUPやSUMIFSをいくつも組み合わせるよりも、遥かにシンプルで、見通しの良い数式を書くことができます。まずは、手元にあるデータで簡単な抽出から試してみてください。きっと、あなたのデータ分析スキルが新たなステージに進むことを実感できるでしょう。
そして、もしあなたがチームでのデータ活用や業務全体の生産性向上を目指しているなら、QUERY関数が活躍するGoogleスプレッドシートを含むGoogle Workspaceの導入を検討してみてはいかがでしょうか。リアルタイムでの共同編集、大容量のクラウドストレージ、そしてAIによるアシスト機能は、あなたのビジネスをさらに加速させるはずです。現在、当サイトではGoogle Workspaceをお得に始められるプロモーションコードを配布しています。興味のある方は、ぜひ「Google Workspace プロモーションコード【最新2026年版】15%割引クーポン無料配布中」の記事で詳細をご確認ください。簡単な手続きで、15%割引を適用できます。