Googleスプレッドシートの「QUERY関数」(クエリ関数)は、SQLに似た構文を使ってデータを抽出・加工できる強力な関数です。「特定の条件でデータを絞り込みたい」「複数のシートの情報を統合したい」「空白を除外してデータを整理したい」といったニーズに応える便利な機能ですが、使い方に戸惑う方も多いのではないでしょうか?本記事では、QUERY関数の基本的な使い方から応用テクニックまでを、初心者にも分かりやすく具体例を交えながら詳しく解説します。
QUERY関数とは?基本の使い方を理解しよう
GoogleスプレッドシートのQUERY関数は、スプレッドシートのデータをSQLのような書き方で抽出・フィルタリング・加工できる強力な関数です。通常、フィルタやソート、条件付き抽出を行うには、複数の関数を組み合わせる必要がありますが、QUERY関数を使えば、一つのシンプルな式でまとめて処理することができます。
QUERY関数でできること
QUERY関数を使うと、以下のようなデータ処理が簡単にできます。
1. 特定の列だけを取得する
スプレッドシートの表から、必要な列だけを取得できます。
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, C", 1)
このクエリでは、A列とC列のみを取得します。不要なデータを省略できるため、視認性が向上します。
2. 条件に合うデータを抽出する(フィルタリング)
例えば、売上データから「売上が100万円以上のデータ」だけを取得する場合:
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, B WHERE B > 1000000", 1)
「WHERE」を使うことで、特定の条件に合うデータだけを抽出できます。
3. データを並び替える(ソート)
昇順・降順でデータを並べ替えることも可能です。
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, B ORDER BY B DESC", 1)
このクエリでは、B列を**降順(大きい順)**に並べ替えます。昇順にする場合は「ASC」を使います。
4. 複数の条件を組み合わせて抽出する
例えば、「売上が100万円以上で、かつ地域が東京のデータ」を取得するには:
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, B WHERE B > 1000000 AND C = '東京'", 1)
「AND」「OR」を使うことで、複雑な条件でも簡単に設定できます。
5. 複数のシートのデータを統合する
異なるシートやファイルのデータを組み合わせる場合は、「IMPORTRANGE」と組み合わせることができます。
graphqlコピーする編集する=QUERY(IMPORTRANGE("スプレッドシートURL", "シート名!A1:D100"), "SELECT A, B WHERE B > 50", 1)
これにより、複数のスプレッドシートのデータを一括で処理できます。
6. 空白セルを除外する
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, B WHERE C IS NOT NULL", 1)
このクエリを使うと、C列が空白でないデータのみを取得できます。
7. セル参照を使って動的にデータを抽出する
graphqlコピーする編集する=QUERY(A1:D100, "SELECT A, B WHERE C > " & E1, 1)
このクエリでは、E1セルに入力された値を条件として、C列のデータを動的に抽出できます。
QUERY関数のメリット
- フィルタやソートを一度に処理できるため、関数の組み合わせが不要。
- 大規模データの処理が高速で、複雑な条件でもスムーズに動作する。
- 複数のシートを横断してデータを管理できるため、プロジェクト管理や売上分析に最適。
QUERY関数を使いこなせば、スプレッドシートでのデータ分析やレポート作成を劇的に効率化できます!
QUERY関数の基本構文
QUERY関数の基本的な構文は以下のとおりです。
=QUERY(データ範囲, "クエリ", [ヘッダー行数])
- データ範囲:検索対象となるデータの範囲
- クエリ:SQL風の構文で条件を指定(例:”SELECT * WHERE A > 10″)
- ヘッダー行数:ヘッダーの行数(省略可)
QUERY関数の基本的な例
データ全体を取得する
=QUERY(A1:D10, "SELECT *", 1)
このクエリでは、A1:D10のデータをすべて取得します。
特定の列のみを取得する
=QUERY(A1:D10, "SELECT A, C", 1)
このクエリでは、A列とC列のデータのみを取得します。
データを昇順・降順で並び替える
=QUERY(A1:D10, "SELECT A, B ORDER BY B DESC", 1)
このクエリでは、B列の値を降順(大きい順)で並び替えたデータを取得します。
条件を満たすデータを取得する
=QUERY(A1:D10, "SELECT A, B WHERE B > 100", 1)
このクエリでは、B列の値が100より大きいデータのみを抽出します。
QUERY関数でSQL風の条件指定をする
WHERE句で条件を指定する
WHERE句を使うことで、特定の条件に合致するデータのみを抽出できます。
指定した値より大きいデータを抽出
=QUERY(A1:D10, "SELECT A, B WHERE B > 50", 1)
このクエリでは、B列の値が50より大きいデータのみ取得します。
特定の文字列を含むデータを抽出
=QUERY(A1:D10, "SELECT A, B WHERE C = '東京'", 1)
このクエリでは、C列が「東京」のデータのみを取得します。
特定の日付のデータを抽出する
=QUERY(A1:D10, "SELECT A, B WHERE C >= date '2023-01-01'", 1)
このクエリでは、C列の日付が2023年1月1日以降のデータを取得します。
QUERY関数で複数シートのデータを統合する方法
IMPORTRANGE関数と組み合わせる
異なるシートやスプレッドシートのデータを統合するには、IMPORTRANGE
関数を組み合わせます。
=QUERY(IMPORTRANGE("スプレッドシートURL", "シート名!A1:D100"), "SELECT A, B WHERE B > 50", 1)
このクエリでは、指定したスプレッドシートのA1:D100範囲のデータから、B列が50より大きいデータを取得します。
QUERY関数の応用テクニック
条件を動的に変える(セル参照を利用)
=QUERY(A1:D10, "SELECT A, B WHERE C > " & E1, 1)
このクエリでは、E1セルの値を基準にC列のデータを抽出します。
空白セルを除外する(IS NOT NULLを活用)
=QUERY(A1:D10, "SELECT A, B WHERE C IS NOT NULL", 1)
このクエリでは、C列が空白でないデータのみ取得します。
まとめ
QUERY関数はGoogleスプレッドシートのデータ管理を強力にサポートする便利な関数です。本記事では、QUERY関数の基本的な使い方から、複数条件の指定方法、空白を除外する方法、IMPORTRANGEとの組み合わせによる複数シートの統合方法まで詳しく解説しました。
QUERY関数をマスターすれば、大量のデータを効率よく整理・抽出でき、作業のスピードが大幅に向上します。実際にスプレッドシートを開いて、本記事のサンプルを試しながら、QUERY関数の活用方法を学んでいきましょう!