Googleスプレッドシートのデータ操作を強化!QUERY関数の徹底解説

はじめに

Googleスプレッドシートには、数多くの強力な関数が用意されていますが、その中でも特にデータ分析やフィルタリングに便利なのがQUERY(クエリ)関数です。QUERY関数は、SQLライクなクエリ文法を使用してデータの抽出や集計を行うことができ、複雑なデータ処理をシンプルに解決します。Excelでのピボットテーブルやフィルタリングに似ていますが、より柔軟で、自由度の高いデータ操作が可能です。

この記事では、QUERY関数の基本的な使い方から、実際のビジネスシーンでの応用例、他の関数との組み合わせまでを詳しく解説します。QUERY関数をマスターすることで、日常業務におけるデータ管理が格段に効率化されることでしょう。

目次

1. QUERY関数とは?

GoogleスプレッドシートのQUERY関数は、データベースのSQL文法に似たクエリを使って、スプレッドシート内のデータをフィルタリング、並べ替え、集計するための強力なツールです。例えば、数千行に及ぶデータセットから特定の条件に合うデータだけを抽出したり、売上データを日別に集計したりすることが、簡単なクエリ文で実現できます。

1.1 QUERY関数の基本構文

=QUERY(データ範囲, クエリ, [ヘッダー行数])

データ範囲:フィルタリングや検索対象となるデータの範囲(例:A1:D100
クエリ:SQLライクな文法で書かれた検索条件や操作(例:"SELECT * WHERE A > 100"
ヘッダー行数(省略可):ヘッダー行の数を指定(通常は1行)


2. QUERY関数の基本的な使い方

QUERY関数は、フィルタリングや集計、データの並べ替えなど、さまざまなデータ操作を1つの関数で行うことができます。基本的な使い方は、データの範囲とクエリを指定するだけで、柔軟なデータ処理が可能です。以下に、QUERY関数を使った簡単な操作の実例を紹介します。

2.1 SELECT文を使った基本的なデータ抽出

たとえば、以下のような営業データがあるとします。

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/02鈴木90,000大阪
2024/01/03高橋150,000東京
2024/01/04田中80,000名古屋

このデータから、売上が100,000円以上の営業データだけを抽出する場合、以下のようにQUERY関数を使います。

=QUERY(A1:D5, "SELECT * WHERE C > 100000", 1)

● このクエリは、売上が100,000円以上の行をすべて表示します。
SELECT *は、すべての列(A~D列)を選択するという意味です。
WHERE C > 100000は、C列(売上)が100,000より大きい条件でフィルタリングします。

結果として、以下のデータが表示されます。

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/03高橋150,000東京

2.2 WHERE文を使った条件検索

QUERY関数のWHERE句を使うと、さらに複雑な条件でデータを検索することが可能です。例えば、地域が「東京」で、売上が100,000円以上のデータだけを抽出したい場合は、以下のように記述します。

=QUERY(A1:D5, "SELECT * WHERE C > 100000 AND D = '東京'", 1)

このクエリは、売上が100,000円以上かつ地域が東京のデータを抽出します。結果は次の通りです。

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/03高橋150,000東京

2.3 ORDER BYでデータを並べ替え

QUERY関数は、データの並べ替えも簡単に行えます。例えば、売上順にデータを並べ替えたい場合は、以下のようにクエリを記述します。

=QUERY(A1:D5, "SELECT * ORDER BY C DESC", 1)

ORDER BY C DESCは、C列(売上)を降順に並べ替えるという意味です(降順:大きいものから順に表示)。
DESCは降順、ASCは昇順を意味します。

結果は次の通りです。

日付担当者売上地域
2024/01/03高橋150,000東京
2024/01/01佐藤120,000東京
2024/01/02鈴木90,000大阪
2024/01/04田中80,000名古屋

2.4 GROUP BYでデータを集計

GROUP BY句を使うと、データをグループ化して集計できます。たとえば、地域ごとに売上を合計する場合、次のようにQUERY関数を使います。

=QUERY(A1:D5, "SELECT D, SUM(C) GROUP BY D", 1)

このクエリは、地域ごとに売上を集計し、結果を表示します。

地域売上合計
東京270,000
大阪90,000
名古屋80,000

2.5 LIMITで表示行数を制限

LIMIT句を使えば、表示する行数を制限することができます。例えば、最初の2行だけを表示したい場合、以下のように記述します。

=QUERY(A1:D5, "SELECT * LIMIT 2", 1)

結果として、最初の2行のみが表示されます。

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/02鈴木90,000大阪

3. QUERY関数の応用例

QUERY関数を使うことで、日常業務におけるデータ処理を大幅に効率化できます。以下に、具体的なビジネスシーンでの応用例をいくつか紹介します。


実例1:営業データの抽出と集計

営業チームが月次の売上データを管理しているとします。その中で、特定の地域や担当者ごとに売上を集計し、フィルタリングしたい場合、QUERY関数が非常に便利です。

データ

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/02鈴木90,000大阪
2024/01/03高橋150,000東京
2024/01/04田中80,000名古屋
2024/01/05山田200,000東京

フィルタリング

東京地域のデータだけを抽出し、売上が100,000円以上の結果を表示したい場合、次のクエリを使います。

=QUERY(A1:D6, "SELECT * WHERE D = '東京' AND C > 100000", 1)

結果は次の通りです。

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/03高橋150,000東京
2024/01/05山田200,000東京

実例2:複数条件でのデータフィルタリング

次に、担当者ごとの売上データを抽出し、さらに複数条件を組み合わせてデータを抽出する場合の実例です。

データ

日付担当者売上地域
2024/01/01佐藤120,000東京
2024/01/02鈴木90,000大阪
2024/01/03高橋150,000東京
2024/01/04田中80,000名古屋
2024/01/05山田200,000東京

この中から、東京地域の売上が150,000円以上のデータを抽出し、売上が高い順に並べたい場合、次のようなクエリを使います。

=QUERY(A1:D6, "SELECT * WHERE D = '東京' AND C >= 150000 ORDER BY C DESC", 1)

このクエリで表示されるデータは以下の通りです。

日付担当者売上地域
2024/01/05山田200,000東京
2024/01/03高橋150,000東京

実例3:売上データを日別・月別に集計

日々の売上データを集計し、月別や日別に売上を確認するのはビジネスにおいて非常に重要です。QUERY関数を使えば、月別に売上データを集計することも簡単に行えます。

データ

日付売上
2024/01/01120,000
2024/01/0290,000
2024/02/03150,000
2024/02/0480,000
2024/03/05200,000

クエリで月別に集計

=QUERY(A1:B6, "SELECT SUM(B), MONTH(A) GROUP BY MONTH(A)", 1)

結果は次の通りです。

売上合計
210,0001月
230,0002月
200,0003月

実例4:在庫管理の効率化

QUERY関数は、在庫管理にも便利です。特定の商品が一定数以上の在庫があるかどうかを簡単にチェックできます。

データ

商品名在庫数値段
ノートPC50120,000
スマホ3080,000
タブレット1570,000
モニター1040,000

クエリで在庫50以上の商品を抽出

=QUERY(A1:C5, "SELECT * WHERE B >= 50", 1)

結果は次の通りです。

商品名在庫数値段
ノートPC50120,000

4. QUERY関数のメリットとデメリット

4.1 メリット

● SQLライクな文法で柔軟なデータ操作
QUERY関数は、SQLのような文法でデータを操作できるため、データベース操作に慣れている人には非常に使いやすいツールです。

● 簡単にフィルタリングや集計ができる
データのフィルタリングや集計が簡単で、ピボットテーブルよりも自由度が高いです。

● 柔軟な条件指定が可能
WHERE句を使うことで、複数の条件を簡単に指定してデータを検索できます。

4.2 デメリット

SQLを知らないと難しい場合がある
SQLに不慣れな人にとっては、QUERY関数の文法が少し難しく感じるかもしれません。

大規模データでは処理が遅くなることがある
非常に多くの行を含むデータセットを扱う場合、処理が遅くなることがあります。


5. 他のGoogleスプレッドシート関数との組み合わせ

QUERY関数は、他のGoogleスプレッドシートの関数と組み合わせることで、さらに強力なツールになります。特に、IMPORTRANGE関数ARRAYFORMULAとの組み合わせで、外部シートからデータを取り込みつつ、そのデータをフィルタリングや集計することができます。

IMPORTRANGEとの組み合わせ

外部のスプレッドシートからデータを取り込み、それをQUERY関数でフィルタリングする場合、次のような構文を使います。

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/外部シートID", "シート1!A1:D100"), "SELECT * WHERE B > 100", 1)

6. まとめ:QUERY関数でデータ管理を効率化しよう

GoogleスプレッドシートのQUERY関数は、データのフィルタリングや集計、並べ替えを簡単に行える非常に強力なツールです。特に、大量のデータを扱う場合や、複数の条件でデータを絞り込む必要がある場面で、その威力を発揮します。SQLに似た文法を使うことで、高度なデータ処理をスプレッドシート上でシンプルに行うことができるため、ビジネスのデータ管理や分析において非常に有効です。

QUERY関数を使いこなすことで、スプレッドシートのデータ管理が効率化され、日常業務の生産性を大幅に向上させることができるでしょう。ぜひ、この機会にQUERY関数を活用してみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ドローン撮影、動画編集、サイト運営、パソコンスキルを説明紹介

コメント

コメントする

目次