Spreadsheet関数表を作成してslackに投稿する

先日Spreadsheetコミュニティを作った際に、slackに追加した「本日のSpreadsheets関数」の機能について、詳細を書いていなかったので書きます。

f:id:minemuracoffee:20180927232612p:plain

できあがった関数表はこちら。

今日のSpreadsheets関数 - Google スプレッドシート

まずは表のimportから。ベタっと貼ってしまうと更新が辛いので、 importhtml を使って本家の表をひっぱります。

=importhtml("https://support.google.com/docs/table/25273?hl=ja","table",1)

あとはslackに投稿する上で、詳細な説明ページへのリンクが欲しい。

f:id:minemuracoffee:20181012134625p:plain

ただしこの「詳細」と書いてあるリンクのURLが importhtml では取得できない。うーんどうしようかなと思ったけど、がんばりすぎるよりもサボることにした。

つまり詳細ページそのものではなくて、Spreadsheetのヘルプ上で関数名を検索したURLを出すことにした。これなら以下のような感じで簡単簡単。

https://support.google.com/docs/search?q=[関数]

という感じでやっていたけど、2週間ぶりに開いてみると、どうも何行か増えている。

f:id:minemuracoffee:20181012134918p:plain

危ない危ない、とおもって arrayformula で増減に対応できるようにする。

=arrayformula("https://support.google.com/docs/search?q="&indirect("B2:B"&counta(B:B),true))

GASだと getLastRow とかでやりがちだけど、今回は countaindirect で解決した。

これで本家のヘルプのURLやhtml構造が変わらない限りは最新の状態が保たれ続けるはず。

ちなみにslack投稿部分はランダムに行を選んで文章を組み立てるだけなので、自分で前に書いた自動投稿の記事を見ながらやった。

www.minemura-coffee.com

自分で作ってなんだけど、「そんな関数あるのか!」という発見が結構あって、いい感じに動いている。

Spreadsheetコミュニティについては以下の記事を御覧ください。参加者募集中です!

www.minemura-coffee.com