BLOG ブログ


2024.08.21 TECH

GoogleスプレッドシートのQUERY関数で、データの抽出や集計を簡単実施

QUERY関数とは

Googleスプレッドシートには、他のシート等から必要なデータだけを抽出したり、集計することができるQUERY関数(Google Visualization API のクエリ言語)が用意されています。

このクエリ言語は、SQLに似た言語となっているので、SQLを知っている人であれば簡単に使うことができます。
SQLを知らない人でも簡単なルールさえ覚えれば、すぐに便利な機能を利用することができます。

前提:抽出元データ

以下の画像のように、スプレッドシート内に「無加工データ」というシートがあり、その中にデータが入っているとします。

このデータから必要なデータを抽出したり、集計してみたいと思います。

QUERY関数の構文

QUERY関数の構文は以下の通りです。

QUERY(①データ, ②クエリ, ③[見出し])

①のデータは、抽出元データの範囲を指定します。
②のクエリには、実行クエリを記載します。
③の見出しは、データ上部に表示される見出し行の数を指定しますが、省略可能な項目なので今回は省略します。

対象データのみを抽出 パターン1

売上金額が25,000円を超えるデータのみを抽出してみます。

=QUERY('無加工データ'!A1:C11, "select A,B,C where B > 25000")

①データには、「無加工データ」シートの対象範囲を指定します。
②クエリの記載内容についてです。
[ select A,B,C ]は、①データのA列、B列、C列の値を表示する、という内容です。
[ where B > 25000 ]は、①データのB列(売上金額)が25000を超えるものだけ抽出、という条件です。

このクエリの結果は以下のようになります。

※見やすいように枠線などは集計後に付けています

対象データのみを抽出 パターン2(Col指定)

次に、利益が10,000円以上のデータのみを抽出してみます。

=QUERY('無加工データ'!A1:C11, "select Col1, Col2, Col3 where Col3 >= 10000")

基本的なルールは先ほどと同じですが、先ほどA列、B列と指定した箇所について、今回はCol1やCol2としています。
これは、①で指定した対象範囲の中で、1列目や2列目という指定方法です。

例えば、抽出元データの先頭に列が追加されて参照列がずれてしまった場合(先頭に3列追加されると、A列だったものがD列に変わってしまいます)に、①データは自動的に対象範囲が変わりますが、②クエリは変わらないため、元のA,B,Cの列を参照しようとして正しい抽出ができなくなってしまいます。
そのため、列の指定は[ Col(数値) ]で指定することをお奨めします。

このクエリの結果は以下のようになります。

集計

売上金額と利益それぞれの合計額を計算してみます。

=QUERY('無加工データ'!A1:C11, "select Sum(Col2), Sum(Col3)")

集計はSum関数を利用します。エクセル等でも利用する関数なので知っている人も多いと思います。

このクエリの結果は以下のようになります。

結果を見てみると、合計金額は正しく出ていますが、
見出しが「sum 売上金額」のようになっていて少し分かりづらいです。

見出しを別名で表示

そこで、見出しに別名を付けて分かりやすく表示してみます。

=QUERY('無加工データ'!A1:C11, "select Sum(Col2), Sum(Col3) label Sum(Col2) '合計売上金額', Sum(Col3) '合計利益'")

②クエリに追加しているのは[ label ]という関数です。
[ label 対象列名 '別名' ]という指定になります。

今回で言うと、以下の構文で[ Sum(Col2) ][ 合計売上金額 ]という別名を付けて表示します。
[ label Sum(Col2) '合計売上金額' ]

このクエリの結果は以下のようになります。

見出しが変わって分かりやすくなっています。

まとめ

スプレッドシートのQUERY関数を利用することで、簡単に抽出や集計等、様々なデータ操作を行うことができます。
SQLを知っていればさらに簡単に利用することができると思います。
クエリ関数の構文には、今回紹介したもの以外にも様々なものが用意されていますので、今後他の内容も勉強して紹介できればと思っています。

▽GoogleスプレッドシートはGoogle LLCの商標です。その他すべての企業名および商品名は、関連各社の商標または登録商標です。


一覧に戻る


LATEST ARTICLE 最新の記事

CATEGORY カテゴリー