スプレッドシートの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関数の基本的な使い方・引数の指定方法をお伝えします。

どうぞお楽しみに!

  投稿者プロフィール

もり
もりシステムエンジニア・Webライター
「ラクするために全力を尽くす」をモットーに日々勉強。退屈なことはプログラミングで片づけよう。
事務作業をとことんラクにできるITネタを発信していきます。

お気軽にフォローしてくださいね!

もりの詳しいプロフィールはこちら
▽▽▽

コメント

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