生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

スプレッドシート「QUERY関数」入門 – データを抽出・集計する最強関数をマスター

スプレッドシートで大量のデータを扱う際、特定の情報を抜き出したり、カテゴリごとに集計したりする作業に追われていませんか。

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文房具佐藤10010
2026/1/6食品鈴木5005
2026/1/7飲料高橋15020

別のシートに、このデータをそのまま表示させたい場合、以下の数式を入力します。

=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つあります。

  1. SUM(D * E): QUERY関数内では、列同士の計算が可能です。ここでは単価(D列)と数量(E列)を掛け合わせた売上金額を計算し、それを合計(SUM)しています。
  2. 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%割引を適用できます。