QUERY関数の使い方を解説!SQL風の条件指定でデータを自在に抽出する方法

QUERY関数の使い方を解説!SQL風の条件指定でデータを自在に抽出する方法

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関数のメリット

  1. フィルタやソートを一度に処理できるため、関数の組み合わせが不要。
  2. 大規模データの処理が高速で、複雑な条件でもスムーズに動作する。
  3. 複数のシートを横断してデータを管理できるため、プロジェクト管理や売上分析に最適。

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関数の活用方法を学んでいきましょう!

目次