読んで欲しい人
- SQLに興味があるが、一から環境やデータ整備するのがめんどくさい人
- vlookupとかでデータ抽出しているが、限界を感じている人
- データ分析したい人
- ノンプログラマーでもクエリぐらいは使いたいって人
- クエリって美味しいの?って人(クエリは美味しいですよって意味も込めて)
Query関数(クエリ関数):連載の概要と目的
個人的にはSQLって大好きで、MySQLをよく使っているのですが、MySQLって環境構築する際に色々エラー起こします(というか、自分が直近8系から5.7系に環境戻したんですが、再構築にグダグダ時間がかかってしまいました。。)。もちろん慣れている方はエラー起こさずにやれるのでしょうが。。そして、エラーが起きても今度はlinuxコマンドでアクセス権変えたり、ファイル所有者変えたり、新規のファイルをtouchさせたり。。。ちょっとノンプロがやるには辛い内容になりやすいです。
そこで、クエリ使ってみたいけど、SQL環境作るほどではないって人向けにスプレッドシートのクエリ関数がちょっとした練習や作業環境に適していたので、紹介していきます。
なお、実際のSQLで行うようなデータベース作成やテーブル作成みたいな物は、そもそもスプレッドシート自体がその役割を担うので、勉強できない点はご容赦ください。また、アクセス権関係やユーザ登録関係(mysqlだったら、mysql dbの部分など)も勉強できません。
ただし、普通のクエリ分書く練習にはなります。もちろん、複雑なクエリ文を書くのに適しているわけではないのですが、select/group/order_by/where/like/start with・・・いろんなクエリ文法がサポートされているあたりは、さすがGoogleさんです。
ざっとQuery関数 (クエリ関数)でできることをみてみよう
こんなデータがあったとします(これはgoogleさんのdocumentからまんま持ってきてます)

これをいろんな条件で検索や集計をしていけます。

一つのシートに色々なデータの形を抽出・集計できます。別のスプレッドシートのデータも合わせて検討したい場合は、importrange関数でシートデータごと引っ張ってくれば、対応も可能です。
やれることがたくさんある、query関数をこれから数回に分けてクエリのお勉強の一環として、試していきます。
Query関数(クエリ関数)シリーズ予定 (あくまで予定)
- 概要と目的←今回
- クエリ関数の構成
- 基本の基本 SELECT句(全部取得、特定カラムだけ取得)
- 抽出の基本 WHERE句を使ってみる(数値一致、大小、日付一致、大小etc)
- GROUP BY句を使ってみる
- 他のシートからデータを持ってきてみよう〜 ImportRange関数との組み合わせ〜
- 並び替えの基本 ORDER BY句
- SQLやるなら必須 サブクエリをやってみる
- データに改行が入ってるぞ likeで対応できない時はcontains/starts withが助けてくれる
まとめ
SQLは実際はインサートやテーブル自体の構築をどうするかっていう点や、データ連携(djangoでいうOneToOneField/ForeignKeyみたいなやつ)とかは勉強できないですが、あくまでそこはノンプロ。DBは作る物ではなく、使うものと想定すれば、Query関数を使ったSQLの勉強は初めの一歩には非常に効果的かなと思います。
シリーズ頑張りきれるか分かりませんが、たまにはpython以外の人の役に立ちそうな記事も少しずつ頑張っていきます。
【レクチャー関係紹介】
ストアカ
ストアカにおいて、私も1.5H程度で簡単にGASやQuery関数のとっかかりを解説する講座を実施しています。1Hくらいの講座と、30分くらいの相談時間(自由時間)を設けて、これからGASやQueryを始める人向けに実際のドキュメントや簡単なスプレッドシートでのGAS・Queryの使い方などを解説させていただきます。
個人的には普及活動の一環だと思って、他の業務のお客さんには申し訳ないものの、それなりにお求めやすく設定しています。必要に応じて別途継続サポートさせていただくことも可能です。
私の講座以外にもストアカには同じような金額帯でQuery講座が複数準備されていました。受講したことがないので、評価は出来ない立場にありますが、相性の良さそうな先生を探すのも手かもしれません。
MENTA
メンターを探すサイトも存在します。あまりGASやQuery関数を教えますってメンターはそこまで多くはないのが実情です。ノンプロエンジニア向けではなく、エンジニア向けor エンジニア志望者向けなので、Query関数はあまり対象にならないかもしれません。他方で純粋SQLを教えてほしいというリクエストであれば、多くのメンターが集まると思います。
ちなみに、私のレクチャーページも紹介しておきます。
【Query関数】 相談PLAN連載目次: spreadsheet_query関数を使いこなそう
SQL勉強もかねて、spreadsheetのquery関数の使い方に慣れていきます。簡単なselect文の使い方から、SQLとの違いも含めて勉強していきます。
- スプレッドシートQuery関数を使ってみよう ①概要と目的
- スプレッドシートQuery関数を使ってみよう ②クエリ関数の構成
- スプレッドシートQuery関数を使ってみよう ③SELECT句
- スプレッドシートQuery関数を使ってみよう ④WHERET句
- スプレッドシートQuery関数を使ってみよう ⑤GROUP BYを使ってみる
- スプレッドシートQuery関数を使ってみよう ⑥他のシートからデータを持ってきてみよう〜 ImportRange関数との組み合わせ〜
- スプレッドシートQuery関数を使ってみよう ⑦並び替えの基本 ORDER BY句
- スプレッドシートQuery関数を使ってみよう ⑧SQLやるなら必須 Query関数でもサブクエリをやってみる
- スプレッドシートQuery関数を使ってみよう ⑨データに改行が入ってるぞ etc クエリ関数エラー対策
- スプレッドシートQuery関数番外編 〜Query関数のエラー原因ランキング〜