GoogleSpreadSheet
Tech FunDay 23

Googleスプレッドシートのqueryを使おう

Googleスプレッドシートのqueryとは

スプレッドシートに記入された値をSQLのように扱うことのできる関数です。
GoogleスプレッドシートにはありますがExcelにはない関数で、
これがちょっとしたデータ解析や管理表を作成する際に非常に便利です。

例えば、以下のように使います。

A B C D
日付 品目 仕入原価 個数
2/1 なし 30 1
2/1 みかん 10 8
2/1 りんご 50 7
2/2 なし 32 5
2/2 みかん 12 6
2/2 りんご 52 3
~~~

このとき、品目(B列)が"なし"の仕入原価のみを取得する場合は以下のようにquery関数を使用します。
=query(A:D,"select C where B = 'なし'")

queryで取得した値は、当然、複数件あるわけですが、これはセルに自動展開されます。
実際のスクリーンショットを見たほうが早いです。

queryスクリーンショット.png

query関数の取得結果はセルに自動展開されますが、当然、この値を他の計算関数の入力に利用することもできます。
例えば、sum関数だとこんな感じです。

スプレッドシートqueryイメージ3.png

query関数の応用方法はいくらでもありますが、そのうちの1つが入力値の条件を指定することができない関数への応用です。
sum関数であれば、sumifやsumifs関数を利用することで合計した値に条件を設けることができますが、
"if"がない関数もたくさんあります。

無性に標準偏差を算出したい...したくない?

平均値だけでは値のばらつきがわからないので、標準偏差をだしたくなるときって誰にでもあると思います。
そんなときに使用するのが、stdevp関数ですが、この関数にはifなるものはなく、
範囲指定した値に条件を設けることができません。
前項の例でいえば、"なし"や"みかん"といった品目ごとに仕入原価の標準偏差を算出する場合、
データを品目ごとに手動でまとめる、といった作業が別途必要になります。

そんなときにquery関数を使えば、簡単に品目を特定して標準偏差の計算ができます。
=stdevp(query(A:D,"select C where B = 'なし'"))

スクリーンショットquery.png

ね、簡単でしょ?

query関数に興味がでた人は

以下の記事を見るとさらにquery関数を応用できます。

他のスプレッドシートから情報取得(importrange関数)
複数シートの統合(importrange関数もあり)

※importrange関数も超便利