- 作成日 : 2025年9月17日
スプレッドシートのQUERY関数とは?基本の使い方から実践的な利用シーンまで解説
Googleスプレッドシートで大量のデータを扱う際、必要な情報だけを抽出したり、条件に合わせて並び替えたりする作業は日常的に発生します。そんなときに強力な味方となるのがQUERY関数です。この関数を使いこなせれば、複雑なデータ処理も簡単に実現でき、業務効率が飛躍的に向上します。
本記事では、QUERY関数の基本概念から実際の使い方、さらに実務で活用できる具体的なシーンまで、初心者の方にも分かりやすく解説していきます。データベースの知識がなくても、この記事を読めばQUERY関数を使いこなせるようになるはずです。
スプレッドシートのQuery関数とは
QUERY関数は、Googleスプレッドシートで利用できる関数で、データベースで使われるSQL(Structured Query Language)に似た文法を使ってデータを操作できる機能です。簡単に言えば、大量のデータから必要な情報だけを抽出し、整理して表示するための関数です。
参考:QUERY – Google ドキュメント エディタ ヘルプ
QUERY関数の基本構文
QUERY関数の基本的な構文は以下のようになります。
=QUERY(データ範囲, クエリ文字列, [ヘッダー行数])
データ範囲には、処理したいデータが入っているセル範囲を指定します。クエリ文字列には、どのような処理を行うかを記述します。ヘッダー行数は省略可能で、データの先頭何行がヘッダーかを指定します。
従来の関数との違い
VLOOKUP関数やFILTER関数でも条件に基づくデータ抽出ができますが、QUERY関数にはいくつかの大きな利点があります。
まず、複数の条件を組み合わせた複雑な抽出が可能です。例えば、「売上が100万円以上かつ地域が関東」といった複数条件での絞り込みが、一つの関数で実現できます。
次に、データの並び替えや集計も同時に行えます。抽出したデータを売上順に並び替えたり、地域ごとの合計を計算したりすることが、追加の関数を使わずに可能です。
さらに、必要な列だけを選択して表示できるため、元データが多くの列を持っている場合でも、見やすい形で結果を表示できます。
QUERY関数が扱えるデータ形式
QUERY関数は、表形式のデータを扱うことを前提としています。各列にはデータの種類(数値、文字列、日付など)があり、各行が一つのレコード(データの単位)を表す形式が理想的です。
データ型の認識も自動で行われます。数値として認識されたデータは計算や比較が可能になり、日付として認識されたデータは日付関数と組み合わせて使用できます。ただし、同じ列に異なるデータ型が混在していると、期待通りの結果が得られないことがあるので注意が必要です。
Google Visualization API Query Languageの特徴
QUERY関数で使用するクエリ言語は、正確にはGoogle Visualization API Query Languageと呼ばれます。SQLに似ていますが、完全に同じではありません。
主な特徴として、列の指定にA、B、Cといったアルファベットを使用する点があります。これにより、列名を覚える必要がなく、直感的に操作できます。また、日付の扱いが独特で、date ‘2024-01-01’のような形式で指定する必要があります。
文字列の比較では、基本的に大文字小文字は区別されません。WHERE句で文字列を比較する際は、この点を考慮して条件を設定する必要があります。
Query関数の基本の使い方
ここからは、実際にQUERY関数を使う方法を、段階的に解説していきます。基本的な使い方をマスターすれば、様々な応用が可能になります。
STEP1:データの準備
まず、QUERY関数で処理するデータを準備します。例として、以下のような売上データがA1:E100の範囲にあるとします。
1行目にはヘッダー(日付、商品名、地域、担当者、売上金額)があり、2行目以降に実際のデータが入っているとします。このようなシンプルな表形式のデータが、QUERY関数に最適です。
STEP2:基本的なSELECT文の使用
最も基本的な使い方は、すべてのデータを表示することです。以下の数式を入力してみましょう。
=QUERY(A1:E100, “SELECT *”, 1)
この数式では、A1:E100の範囲からすべての列(*)を選択し、1行目をヘッダーとして扱います。結果として、元データがそのまま表示されます。
特定の列だけを表示したい場合は、以下のように記述します。
=QUERY(A1:E100, “SELECT A, B, E”, 1)
これにより、A列(日付)、B列(商品名)、E列(売上金額)だけが表示されます。必要な情報だけを抽出できるので、データが見やすくなります。
STEP3:WHERE句による条件指定
データを条件で絞り込むには、WHERE句を使用します。例えば、売上金額が50万円以上のデータだけを表示する場合は以下のように記述します。
=QUERY(A1:E100, “SELECT * WHERE E >= 500000”, 1)
文字列での条件指定も可能です。地域が「関東」のデータだけを表示する場合は以下のようになります。
=QUERY(A1:E100, “SELECT * WHERE C = ‘関東'”, 1)
複数の条件を組み合わせることもできます。AND(かつ)やOR(または)を使って条件を連結します。
=QUERY(A1:E100, “SELECT * WHERE C = ‘関東’ AND E >= 500000”, 1)
STEP4:ORDER BY句によるデータの並び替え
抽出したデータを特定の順序で並び替えるには、ORDER BY句を使用します。売上金額の高い順に並び替える場合は以下のように記述します。
=QUERY(A1:E100, “SELECT * WHERE E >= 300000 ORDER BY E DESC”, 1)
DESCは降順(大きい順)を意味し、ASCまたは省略すると昇順(小さい順)になります。複数の列で並び替えることも可能です。
=QUERY(A1:E100, “SELECT * ORDER BY C, E DESC”, 1)
この例では、まず地域(C列)で並び替え、同じ地域内では売上金額(E列)の高い順に並び替えます。
STEP5:GROUP BY句とSUM関数による集計
データを集計する場合は、GROUP BY句と集計関数を組み合わせます。地域ごとの売上合計を計算する例を見てみましょう。
=QUERY(A1:E100, “SELECT C, SUM(E) GROUP BY C”, 1)
この数式では、地域(C列)でグループ化し、各地域の売上金額(E列)の合計を計算します。結果として、地域名とその地域の売上合計が表示されます。
他にも使える集計関数には、COUNT(件数)、AVG(平均)、MAX(最大値)、MIN(最小値)などがあります。
=QUERY(A1:E100, “SELECT C, COUNT(E), AVG(E) GROUP BY C”, 1)
STEP6:LIMIT句による表示件数の制限
大量のデータから上位のみを表示したい場合は、LIMIT句を使用します。売上金額の上位10件だけを表示する例です。
=QUERY(A1:E100, “SELECT * ORDER BY E DESC LIMIT 10”, 1)
この機能は、ランキング表示やダッシュボード作成時に特に便利です。
Query関数の利用シーン
QUERY関数の基本的な使い方を理解したところで、実際の業務でどのように活用できるかを具体的なシーンごとに見ていきましょう。
売上分析とレポート作成
営業部門では、日々の売上データから様々な切り口で分析を行う必要があります。QUERY関数を使えば、複雑な分析も簡単に実現できます。
例えば、月別の売上推移を把握したい場合、以下のような数式を使用します。
=QUERY(A1:E100, “SELECT MONTH(A)+1, SUM(E) WHERE YEAR(A) = 2024 GROUP BY MONTH(A)+1 ORDER BY MONTH(A)+1”, 1)
この数式では、2024年のデータを月ごとに集計し、月順に表示します。MONTH関数は0から始まるため、+1を付けて実際の月数に合わせています。
商品カテゴリー別の売上ランキングを作成することも可能です。上位5商品とその売上金額を表示する場合は、以下のように記述します。
=QUERY(A1:E100, “SELECT B, SUM(E) GROUP BY B ORDER BY SUM(E) DESC LIMIT 5”, 1)
在庫管理での活用
在庫管理システムでは、適正在庫の維持が重要です。QUERY関数を使って、在庫切れリスクの高い商品を抽出できます。
在庫数が安全在庫を下回る商品を抽出する例を考えてみましょう。商品マスタと在庫データを結合して分析する場合、以下のような活用が可能です。
=QUERY(在庫データ範囲, “SELECT 商品名列, 在庫数列 WHERE 在庫数列 < 50 ORDER BY 在庫数列”, 1)
また、長期間動きのない滞留在庫の抽出も重要です。最終入出庫日から90日以上経過した商品を表示する場合は、日付関数と組み合わせて使用します。
顧客データの分析
マーケティング部門では、顧客セグメントごとの分析が欠かせません。QUERY関数を使えば、様々な角度から顧客データを分析できます。
例えば、購入金額が上位20%の優良顧客を抽出する場合、以下のような手順で実現できます。まず顧客ごとの購入金額を集計し、その後上位顧客を抽出します。
=SORTN(
QUERY(顧客データ範囲, “SELECT 顧客ID列, SUM(購入金額列) GROUP BY 顧客ID列”, 1),
ROUNDUP(COUNTA(UNIQUE(顧客ID列範囲))*0.2), 0, 2, FALSE)
地域別の顧客分布を把握することも重要です。都道府県別の顧客数と平均購入金額を算出する場合は、以下のように記述します。
=QUERY(顧客データ範囲, “SELECT 都道府県列, COUNT(顧客ID列), AVG(購入金額列) GROUP BY 都道府県列”, 1)
プロジェクト管理での応用
プロジェクト管理においても、QUERY関数は強力なツールとなります。タスクの進捗状況を可視化したり、リソースの配分を最適化したりする際に活用できます。
期限が迫っているタスクを優先度順に表示する場合、以下のような数式を使用します。
=QUERY(タスク管理表, “SELECT タスク名列, 担当者列, 期限列 WHERE 期限列 <= date ‘” & TEXT(TODAY()+7,”yyyy-MM-dd”) & “‘ AND ステータス列 != ‘完了’ ORDER BY 期限列”, 1)
この数式では、今後7日以内に期限を迎える未完了タスクを、期限の早い順に表示します。TODAY()関数と組み合わせることで、常に最新の状況を反映できます。
人事データの集計と分析
人事部門では、従業員データの管理と分析が重要な業務です。QUERY関数を使えば、部門別の人員構成や給与分析なども簡単に行えます。
部門別の平均年齢と人数を集計する例です。
=QUERY(従業員データ, “SELECT 部門列, COUNT(従業員ID列), AVG(年齢列) GROUP BY 部門列”, 1)
勤続年数別の給与分析を行う場合は、計算フィールドを使用することもできます。現在の日付から入社日を引いて勤続年数を計算し、その結果でグループ化します。
Query関数を使いこなすための実践テクニック
ここまでQUERY関数の基本的な使い方と実践的な利用シーンを見てきましたが、さらに効果的に活用するためのテクニックをご紹介します。これらのテクニックをマスターすれば、より複雑なデータ処理も自在に行えるようになります。
動的なクエリの作成
QUERY関数の真の力は、クエリ文字列を動的に生成できる点にあります。セルの値を参照してクエリを組み立てることで、インタラクティブなダッシュボードを作成できます。
例えば、G1セルに入力された地域名でフィルタリングする場合、以下のように記述します。
=QUERY(A1:E100, “SELECT * WHERE C = ‘”&G1&”‘”, 1)
&演算子を使って文字列を連結することで、G1セルの値がクエリに組み込まれます。これにより、G1セルの値を変更するだけで、表示されるデータが自動的に切り替わります。
日付範囲での絞り込みも同様に実現できます。開始日をG1セル、終了日をG2セルに入力して、その期間のデータを抽出する場合は以下のようになります。
=QUERY(A1:E100, “SELECT * WHERE A >= date ‘”&TEXT(G1,”yyyy-mm-dd”)&”‘ AND A <= date ‘”&TEXT(G2,”yyyy-mm-dd”)&”‘”, 1)
エラー処理とデータ検証
QUERY関数を使用する際、データの不整合やクエリの記述ミスによってエラーが発生することがあります。IFERROR関数と組み合わせることで、エラー時の表示をコントロールできます。
=IFERROR(QUERY(A1:E100, “SELECT * WHERE E > 1000000”, 1), “該当するデータがありません”)
この数式では、条件に合うデータがない場合やエラーが発生した場合に、「該当するデータがありません」というメッセージを表示します。
データの整合性を保つためには、事前のデータクレンジングも重要です。QUERY関数を適用する前に、空白セルや異常値を処理しておくことで、より正確な結果を得られます。
パフォーマンスの最適化
大量のデータを扱う場合、QUERY関数のパフォーマンスが問題になることがあります。以下の点に注意することで、処理速度を向上させることができます。
まず、データ範囲を必要最小限に絞ることが重要です。A:Eのように列全体を指定するよりも、A1:E1000のように具体的な範囲を指定する方が高速に処理されます。
また、複雑な計算は可能な限りQUERY関数の外で行うことをお勧めします。例えば、売上金額に消費税を加算した値で集計する場合、事前に計算列を作成してからQUERY関数を適用する方が効率的です。
インデックスの概念はありませんが、データを事前にソートしておくことで、ORDER BY句の処理が高速化される場合があります。頻繁に使用する並び順がある場合は、元データをその順序で管理することを検討してください。
他の関数との組み合わせ
QUERY関数は単独でも強力ですが、他の関数と組み合わせることでさらに柔軟な処理が可能になります。
IMPORTRANGE関数と組み合わせれば、他のスプレッドシートのデータを参照してクエリを実行できます。
=QUERY(IMPORTRANGE(“スプレッドシートID”, “シート名!A1:E100”), “SELECT * WHERE Col3 = ‘関東'”, 1)
ARRAYFORMULA関数と組み合わせることで、QUERY関数の結果に対してさらに計算を適用することも可能です。ただし、この組み合わせは複雑になりがちなので、必要性を慎重に検討してください。
QUERY関数の結果を別のQUERY関数の入力として使用する、入れ子構造も可能です。ただし、可読性が低下するため、複雑すぎる入れ子は避けるべきです。
これらのテクニックを活用することで、スプレッドシートをより高度なデータ分析ツールとして活用できます。最初は基本的な使い方から始めて、徐々に高度なテクニックを取り入れていくことをお勧めします。実際の業務データで練習を重ねることで、QUERY関数の可能性を最大限に引き出せるようになるでしょう。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートとエクセルの違いとは?関数・ショートカット・機能を比較
Googleスプレッドシートとエクセル(Microsoft Excel)は、いずれも代表的な表計算ソフトですが、それぞれに特有の強みがあります。スプレッドシートはクラウドベースで共同編集に優れ、Excelは長年の進化により高度な分析や自動化…
詳しくみるスプレッドシートで箇条書きするには?作成方法から活用シーンまで解説
GoogleスプレッドシートはWordやGoogleドキュメントのような自動で階層化する機能はありませんが、セル内の改行やインデント記号を組み合わせることで階層的に表現できます。 本記事では、スプレッドシートで箇条書きを作成する具体的な方法…
詳しくみるスプレッドシートで全角を半角に変換する方法とは?関数と置換を使った文字変換テクニック
Googleスプレッドシート(Google Sheets)でデータを扱う際、全角文字と半角文字が混在していると、検索・並べ替え・集計などの処理で思わぬエラーや不整合が発生することがあります。 特に、外部システムからのデータ取り込みや複数人で…
詳しくみるスプレッドシートで条件付き書式をコピーするには?相対参照での貼り付けからトラブル対処まで
Googleスプレッドシートで設定した条件付き書式をコピーすることで、同じ書式ルールを効率的に他のセルや範囲に適用でき、大幅な時間短縮が実現できます。条件付き書式のコピーには複数の方法があり、相対参照を活用することで、参照セルを自動的に調整…
詳しくみるエクセルで見やすい散布図を作る方法とは?
エクセルを活用してデータを視覚化する際、散布図は非常に効果的な手段です。散布図は、2つの異なるデータセットの相関関係を直感的に示すことができるため、ビジネスや研究で広く利用されています。本記事では、エクセルで見やすい散布図を作成する方法に焦…
詳しくみるスプレッドシートに動画を埋め込みできる?制限事項と代替案まとめ
Googleスプレッドシート(Google Sheets)に動画を直接埋め込みたいと考えるユーザーは多く、プレゼンテーション資料や教育コンテンツ、マニュアル作成などで動画を活用したいというニーズは高まっています。しかし、残念ながらスプレッド…
詳しくみる



