スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する


QUERY関数アイキャッチ1

みなさんこんにちは!
もり(@moripro3)です!

GoogleスプレッドシートQUERY関数の使い方をシリーズでお届けしていきます!

シリーズ初回の当記事では、「最初の一歩」としてこれらをお伝えします。

  • スプレッドシートのQUERY関数とは
  • QUERY関数の最大の肝「クエリ」とは何か?
  • QUERY関数を使用するメリット

QUERY関数は、Excelにはない、Googleスプレッドシート特有の便利な関数です。
それではシリーズを通して習得していきましょう!

スポンサーリンク

QUERY関数とは

QUERY関数とは、「データ」に「条件」を指定して、目的のデータを抽出する関数です。

構文がこちらです。Google公式ドキュメントも参考にご覧ください。

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

3つの引数を指定します。

引数 省略の可否 説明
データ 必須 クエリを実行するセルの範囲
クエリ 必須 データ操作を実行する条件
見出し 省略可 データの上部にある見出し行の数

このQUERY関数を使うために重要な「クエリ」とは何か、詳しくみていきます。

クエリとは

英単語「query」の意味がこちらです。

  • 質問する
  • 問い合わせする

IT用語としての「クエリ」の意味もみてみましょう。

データベース管理システムに対する問合せ(処理要求)のこと。

データの抽出や更新などの処理要求を文字列で表す。処理対象のテーブルやデータの抽出条件、並べ方などを指定する。(ITトレンドより引用)

このシリーズを通じて、「クエリ=問合せ」と理解しておきましょう。

クエリのイメージを理解する

この項では、「データ」に「クエリ」を実行して目的のデータを抽出するイメージをつかみましょう。

会社の社員一覧から、特定の社員情報を抽出します。この場合、「社員の一覧」が「データ」にあたります。

query1-1

 

スプレッドシートに「データ」を作成します。これがデータベースの役割をします。

query1-4

この「データ」(データベース)に対して「クエリ」を実行します。

単一条件を指定するクエリ

すべての社員からタカハシさんを抽出する「クエリ」を作ってみます。「クエリ」とは「問合せ」ですね。

query1-2

 

このクエリを実行すると、条件に合致する3人の「タカハシ」さんがやって来ます。これが、クエリの実行結果です。

query1-3

 

この処理を、スプレッドシートのQUERY関数で表現してみます。

A~D列の「データ」に対して、QUERY関数で「クエリ」を実行して結果を取得しています。

※QUERY関数の「引数の指定方法」はシリーズを通して詳しく紹介していきますので、ここではイメージだけ確認しましょう。

query1-5

単一条件の指定と並び替えをするクエリ

クエリは「データの並び替え」もできます。下記の例だと、2つの「問合せ」をまとめて実行しています。

①タカハシさんを呼ぶ
②社員番号順に並んでもらう

query1-6

スプレッドシートで実行した結果です。タカハシさんが社員番号順に並びます。

query1-10

複数条件を指定するクエリ

クエリは「複数の条件」を指定することも可能です。

・部署=システム部
・姓=タカハシ

を抽出するイメージがこちらです。

query1-7

スプレッドシートでのクエリの実行結果がこちらです。(※QUERY関数の使い方はシリーズを通して解説していきますのでご安心を!)

query1-11

 

以上が、QUERY関数で「クエリ」を実行するイメージです。QUERY関数を使用すると、大量の「データ」から、目的のデータのみを抽出することができます。

QUERY関数を使用するメリット

QUERY関数は、「データ」に「クエリ」を実行して、目的のデータを抽出する関数とイメージしてもらえたかと思います。

ここで気になるのが、「なぜ、QUERY関数を使う必要があるのか?」です。

スプレッドシートには「フィルタ」や「並び替え」機能がありますよね。

フィルタ機能を使えば、目的の行を取得することができます。社員番号で並び替えるなら「並び替え」の機能も使えます。

query1-8

一度だけデータを抽出する」「一度だけデータの並び替えをする」のであれば、これらの機能でも十分かもしれません。

元データの変更内容を自動で取得できる

日次でシステムからデータを取得して、スプレッドシートに貼り付け、決まった条件でデータを抽出する作業を考えてみます。

「フィルタ」や「並び替え」の機能だと、元データが変わったら、そのたびに手動で条件を設定する必要がありますよね。

QUERY関数は、一度セルに関数を入力すれば、元データに変更が発生した場合も、自動で結果が反映されます。

さきほどのスプレッドシートの元データを2点変更してみます。

①姓をタカハシ→マツイに変更
②新入社員タカハシさんを追加

F1セルに入力されているQUERY関数はそのままですが、取得結果が自動で反映されました。

query1-9

元データが変わるたびに、手作業でポチポチと条件を設定するのはめんどうくさいですよね。毎日こんな風に呼び出す作業と同じです。

query1-12

それに対して、QUERY関数は「貼り紙」のようなものです。一度条件を設定すれば、人が何もしなくても、自動で最新データを取得できます。
複雑な条件でも、セルに関数を入力しておくだけでよいのが便利です。

query1-13

QUERY関数は、「いつも同じ条件でデータを抽出するルーチン作業で、最高に役立つ関数」と覚えておきましょう!

「元データ」と「抽出データ」を別シートで管理できる

QUERY関数を使うと、「元データ」と「抽出データ(結果)」を別シートに分けることも可能です。

①別々のスプレッドシートに分ける

  • 元データ = スプレッドシートAのシート1
  • 抽出データ = スプレッドシートBのシート1

②同一スプレッドシートの別シートに分ける

  • 元データ = スプレッドシートAのシート1
  • 抽出データ = スプレッドシートAのシート2

「元データ」をシート1に用意して、

query1-14

シート2にQUERY関数を入力してデータを取得することも可能です。(シート1を参照する)

query1-15

 

このように、「元データ」と「抽出データ」を分けることで、データの管理がしやすくなります。
スプレッドシートを開いたら、前の作業者がフィルタをかけっぱなしだった!なんてイライラもなくなりますね。

「SQL」を習得できる

QUERY関数の「クエリ」は、データベース言語の1つである「SQL」がベースになっています。

仕事で大量のデータ集計をする方は、「SQL」を習得すると、AccessやExcelVBAでも利用できます。

【エクセルVBA&Access連携】SQL文でデータを抽出する最も簡単なプログラム
エクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。今回はデータベース言語SQLとADODB.Recordsetオブジェクトでデータベースからデータを抽出します。

SQLってプログラマが使うものでしょ…と思っている事務職の方も、ぜひチャレンジしてみてください。

まとめ

今回の記事では、QUERY関数を紹介するシリーズの第一歩として、この3点をお伝えしました。

  • スプレッドシートのQUERY関数とは?
  • 「クエリ」とは何か?
  • QUERY関数を使うメリット
    • 一度セルに関数を入力すれば、元データに変更が発生した場合も、自動で結果が反映される
    • 「元データ」と「抽出データ」を分けて管理できる

ルーチン作業で、いつも同じ条件を指定してデータを抽出している人は、ぜひ覚えておきたい関数です!

次回は、QUERY関数の基本的な使い方・引数の指定方法をお伝えします。

QUERY関数の基本!別シートのデータからselect句で列を取得する方法
GoogleスプレッドシートのQUERY関数を紹介するシリーズ。第二回目は、select句で特定の列を抽出する方法です。1列のみ・複数列・すべての列を抽出する書き方を紹介しています。

連載目次:GoogleスプレッドシートQUERY関数をマスターしよう

スプレッドシートのQUERY関数を使って、データ抽出・集計を効率化する方法を紹介しています。

  1. スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する
  2. QUERY関数の基本!別シートのデータからselect句で列を取得する方法
  3. 【QUERY関数】where句と比較演算子を使って単一条件に一致した行を抽出する
  4. 【QUERY関数】where句とlike演算子を使用して指定の文字を含む行を抽出する
  5. 【QUERY関数】where句で日付データを条件にして行を抽出する
  6. 【QUERY関数】where句で時刻データを条件にして行を抽出する
  7. 【QUERY関数】where句でand,orを使用して複数条件を指定する
  8. 【QUERY関数】order by句で抽出結果を昇順・降順ソートする
  9. 【QUERY関数】group by句とcount関数で列のデータ数をカウントする
  10. 【QUERY関数】group by句とsum関数で列の値の合計値を求める
  11. 【QUERY関数】group by句とavg関数で列の値の平均値を求める
  12. 【QUERY関数】group by句とmax・min関数で列の最大値・最小値を求める
  13. 【QUERY関数】group by句で複数の列をグループ化して集計する

タイトルとURLをコピーしました