いまさらすぎるけど Google Spreadsheet はやっぱり便利だった件

asoview! Advent Calendar 2019 の 3 日目の記事です。

サーバサイドエンジニア/開発マネージャのタケウチです。

最近はビジネスチームと連携する役割が増えてきたのですがデータのやりとりが必要なときは Google Spreadsheet を使っています。いつのまにかいろんなことができるようになっていて改めて便利だなーと思ったりします。 いまさらすぎて涙が出そうですが、よく使っている関数や機能(スクリプト除く)を書いていきたいと思います。

Google 翻訳

いつもお世話になっている GOOGLETRANSLATE 関数です。DETECTLANGUAGE 関数で言語識別もできます。

画像表示

IMAGE 関数でセルに画像を表示できます。

IMPORTRANGE 関数

IMPORTRANGE 関数は他のスプレッドシートの特定範囲をインポートします。スプレッドシートを他のチームと共有するとどんどんシートが増えていくのでこれをうまく使うとシートを増やさずに済むかもしれません。ただし、参照位置を文字列で指定するため行・列変更には弱いです。

他にも IMPORTXML, IMPORTHTML, IMPORTFEED, IMPORTDATA というものがあるのでもう大体のフォーマットのデータはスプレッドシートに取り込めそうです。

範囲の結合

={A1:B2;C1:C2} といったように複数の範囲を ; で区切って {} で囲うと範囲を結合できます。いろんなシートにデータが散らばっている場合などに使えます。範囲の代わりに IMPORTRANGE でも同様にできます。

QUERY 関数

QUERY はスプレッドシートの範囲を "Google Visualization API のクエリ言語" という SQL っぽい言語でデータを加工したりフィルタなどできます。 また、 group by や pivot で集計もできるので非常に便利です。

例えば以下の 2 シートがあったとします。

f:id:daicham:20191202203744p:plain
配送先東部シート
f:id:daicham:20191202203925p:plain
配送先中部シート

where でフィルタはこんな感じ。列指定もできます。

f:id:daicham:20191202204030p:plain

group by で集計はこんな感じ。 集合関数 が使えて label で列名を指定できます。

f:id:daicham:20191202204113p:plain

pivot はこんな感じ。列展開されます。

f:id:daicham:20191202204204p:plain

ドキュメントには他にもいろいろ書いてあります。

ARRAYFORMULA

ARRAYFORMULA 関数は配列(範囲)に対応していない関数で配列を使うことができます。

例えば、最高評価が S だったとき Legend と表示したい場合、 E2=ARRAYFORMULA(IF(D2:D13="S", "Legend", "")) と書くとその下の行も自動的に表示されます。

f:id:daicham:20191202204229p:plain

参考文献