今回は、QUERY関数(クエリ関数)の基礎的な部分について書いていきたいと思います。エンジニア経験の無い方でもとっつきやすよう、できる限り専門用語を使わないように心掛けながら基礎的な解説をしてみます。
改めてQUERY(クエリ)ってなんだっけ?
辞書的な意味でいうと、QUERY(クエリ)は「問い合わせする」、「照会する」となります。今回の文脈でいうと、「必要なデータを絞込んで抽出することを目的として、データベースに照会をするための、決まった形式の命令文」といったところが適切な意味合いにあります。
データベースというとやや大層なイメージになりますが、Ecxelやスプレッドシート内で作成する表データだと考えてもらって差し支えありません。(超ざっくりの解釈となりますが、ご容赦ください)
お役所などに必要な情報を照会する際に決まった形式の申込書があるのと同じように、表データに対し抽出の照会をする場合も、決まったルールで命令文を書く必要があります。
その決まったルールの命令文がQUERY(クエリ)になります。
命令文の「決まったルール」で最もよく使われるルール(言語)が、SQL(Structured Query Language)というものになります。QUERY関数の中に記載する、クエリ文もSQLの一種です。
QUERY関数の構文
QUERY関数の書き方(構文)は以下の通りで、3つのパートに分かれています。
=QUERY(表データ, 照会命令文, [表データの項目名])
それぞれのパートの概要をテーブルにまとめてみました。
パート | 本来の呼び方 | 必須 | 説明 |
---|---|---|---|
表データ | データ(ベース) | 必須 | 問い合わせを行う表データ。シートのセル範囲を指定する。 |
照会命令文 | クエリ | 必須 | 抽出したい内容に沿った命令文。 |
表データの項目名 | 見出し | オプション | 表データの見出しの行数(何行目にあるか?) |
QUERY関数用のクエリの書き方
それでは実際に、照会命令文であるクエリをどのように書くかを見てみます。よくある、デジタル広告配信のレポートデータをイメージした表から欲しいデータを抽出してみます。
A列からF列までの表データから、「サイトA」で稼働した「キャンペーン名」と「日付」を抽出しています。H1のセルには以下の関数が書かれています。
=QUERY(A:F, “select B,C where A=’サイト1′”, 1)
1つ目のパート:表データ(A:F)
ここでは、問い合わせを行う表データの範囲を指定しています。この場合だと、同じシート内にあるA列からF列のすべてを指定しています。
他のシートにある表データを指定する場合は、「’シート名!’」とシート名を「’」(シングルクォート)で囲み、そのあとに「!」(エクスクラメーションマーク)を付け、最後に列指定を記載します。
=QUERY(A:F, “‘シート2’!select B,C where A=’サイト1′”, 1)
更には、同じスプレッドシート内だけでなく、他のスプレッドシートやCSVファイルにある表データを取り込んで、指定することも可能です。やり方は別記事で説明させていただきますね。
2つ目のパート:照会命令文(“select B,C where A=’サイト1′”)
ここでは、照会命令文となるクエリを記載しています。クエリは、必ず二重引用符(ダブルクォート)で囲んで記載します。
ここで使っている命令文の種類は、select と whereの2つとなります。この命令文の種類を「句」と呼びます。なのでこの場合は、select句、where句という具合になります。
それぞれの意味と使い方をテーブルにまとめてみました。
句 | 説明 | 記載例 |
---|---|---|
Select | データ抽出をする項目と順番を指定できます。項目と項目の間は「,」(カンマ)でつなぎます。合計値や平均値を集計するための関数も使用することができます。 | Select B,C |
Where | 抽出する条件を指定できます。単純なイコールでつなぐ等式(完全に一致する内容)だけでなく、「XXXで始まる」、「XXXを含む」といった条件を指定することも出来ます。 | Where A=’XX’ |
Select句、Where句の指定方法については、なかなかに奥が深いので、別記事もご参照ください。
3つ目のパート:項目名の行数(1)
表データ内の中で、どの行までがその表の項目になるかを指定できます。「1」の場合は、1行目を項目としてみなします。「-1」にすると自動判別になります。
まとめ
ここまで、QUERY関数のほんの触りを解説させていただきました。以下、改めまして記事のまとめです。
- QUERY(クエリ)は抽出条件を記載した、表データへの照会命令文のこと。
- QUERY関数は、表データ、照会命令文、表示項目の3つのパートから成る。
- 照会命令文の基本は、「Select句」と「Where句」
QUERY関数についての関連記事は、以下も御覧ください。
この使い方を極めて行くと、思い通りのデータ抽出ができるようになり、きっとお仕事に役立つと思います。