Googleフォームの回答のような蓄積データを自分の見やすいようにまとめて出力しようとしたときに、DBのSQLみたいに書ければ楽なのに、と思ったらSQLっぽく書けるらしいのでやってみました。
# 例
最初に例題を見たほうが多分早いです
今回の例題で使ったデータです。
入力した数式です。
=query(A7:B100,"select A,B where B = 50")
数式の出力結果です
# 解説
記述 | 内容 |
---|---|
A7:B100 | 検索範囲 |
"select A,B where B = 50" | 抽出条件 |
この抽出条件にSQLライクに書けるのがミソです。
where句はもちろんorder by,group byなどイロイロ使えるようです。
詳細はこちら
Query Language Reference (Version 0.7) | Charts | Google Developers
わかりやすく書いてくれてるのもありました。
スプレッドシートのQUERY関数で、条件に一致するデータをまとめて抽出する方法 | たぬハック
# 他の例
日付とかを使ったりする場合や別シート参照などもこんな感じに組み込めます。
//先々月末より後に登録されたデータの特定列を一覧表示する
=query('フォームの回答 1'!A1:S100,"select M,H,A,B,C,J where A > date '"&TEXT(EOMONTH(TODAY(),-2),"yyyy-MM-dd")&"'")
記述 | 内容 |
---|---|
'フォームの回答 1'!A1:S100 | フォームの回答シートの範囲指定 |
EOMONTH(TODAY(),-2) | 先々月末の日 |
date '"&TEXT(EOMONTH(TODAY(),-2),"yyyy-MM-dd")&"' | 日付を比較する際のフォーマット変換 |
# まとめ
SQLを駆使することで、簡易データベースとしてかなり気軽に使えます。
速度感は不明ですが。。。(100件程度しかやってないので)
活用できそうな部分には是非活用しましょう。