先日Spreadsheetコミュニティを作った際に、slackに追加した「本日のSpreadsheets関数」の機能について、詳細を書いていなかったので書きます。
できあがった関数表はこちら。
今日のSpreadsheets関数 - Google スプレッドシート
まずは表のimportから。ベタっと貼ってしまうと更新が辛いので、 importhtml
を使って本家の表をひっぱります。
=importhtml("https://support.google.com/docs/table/25273?hl=ja","table",1)
あとはslackに投稿する上で、詳細な説明ページへのリンクが欲しい。
ただしこの「詳細」と書いてあるリンクのURLが importhtml
では取得できない。うーんどうしようかなと思ったけど、がんばりすぎるよりもサボることにした。
つまり詳細ページそのものではなくて、Spreadsheetのヘルプ上で関数名を検索したURLを出すことにした。これなら以下のような感じで簡単簡単。
https://support.google.com/docs/search?q=[関数]
という感じでやっていたけど、2週間ぶりに開いてみると、どうも何行か増えている。
危ない危ない、とおもって arrayformula
で増減に対応できるようにする。
=arrayformula("https://support.google.com/docs/search?q="&indirect("B2:B"&counta(B:B),true))
GASだと getLastRow
とかでやりがちだけど、今回は counta
と indirect
で解決した。
これで本家のヘルプのURLやhtml構造が変わらない限りは最新の状態が保たれ続けるはず。
ちなみにslack投稿部分はランダムに行を選んで文章を組み立てるだけなので、自分で前に書いた自動投稿の記事を見ながらやった。
自分で作ってなんだけど、「そんな関数あるのか!」という発見が結構あって、いい感じに動いている。
Spreadsheetコミュニティについては以下の記事を御覧ください。参加者募集中です!