スプレッドシートで作った関数を大量発行したら、途中からエラーになった

はい、以下の記事の続きです

http://workmemo.techblog.jp/archives/37357577.html

喜び勇んで作った関数を大量に(1万件)くらい回してみたら、
実行に結構時間が掛かるうえ、ERRORになってる場所が結構ある。
ただし個別にデコードするとちゃんと成功する。

調べてみたらgoogleスプレッドシートって
スクリプトを大量に呼ぶと途中であきらめてERRORにする癖があるようで。

参考:
http://jutememo.blogspot.com/2014/01/google.html


ちゃんと測ってませんが、直観的に1000件くらいを超えると怪しい。

#ERROR! となり、以下のエラーが吐き出されます。
Service invoked too many times in a short time: exec qps. Try
Utilities.sleep(1000) between calls.(行 0)が発生しました。


今回は自動化することが目的ではなく、単発でデータを出すことが目的だったので、
ISERRORでERRORになっていない部分を抜き出してデータ化。
ERRORになってる部分だけを再計算するようにしました。

この再計算もスプレッドシートの自動計算のクセなのか、
フォーカスのin-outではだめで、一度セルを綺麗にして再度コピペする、みたいにしないとダメでした。
再計算ボタン探したけど見当たらなかったのですが、たぶんどこかにあるんじゃないかと。


スプレッドシートは便利だけど、地味な落とし穴がたまに空いてます。