2016-06-16 4 views
0

Googleスプレッドシートを使用して外部データプロバイダからAPIデータを解析しています - 独自のキーを使用してこのデータプロバイダにpingを実行するスクリプトエディタを使用して、データを一連のテーブルに解析します。Googleスプレッドシートのカスタム機能 - オートリフレッシュ

APIの設定方法列Aのカテゴリデータを要求し、データは列B〜Fに解析されます。私は、別のセルを「オン」に設定しない限り、関数が実行されない論理節を持っています。なぜなら、私が行うすべての呼び出しに対して課金されているからです。セルを「オフ」(または「オン」以外)に設定したデータを呼び出した後にデータが消えた場合は、一般にデータをオンにしてデータを処理できるようにします。

私は時折、Googleシートが自動的に機能を再表示/再呼び出ししていることに気付きました。あたかもボタンを「オフ」に設定してから「オン」にしたようです。これは、本質的に私が既に引っ張ったデータに対して再度請求されているため、問題です。私は何も触れることなくこれが100%であることを確認することができます - 時には数分後に、時には数時間後に起こることもあります。

これはGoogleのシートで知られている問題ですか?とにかく私はこれが起こるのを防ぐことができますか?一度私がデータを呼び出すと、何らかの理由でそれを「再呼び出し」したくない。

EDIT - 視覚的な例を試してみて与えるために試してみて、より具体的に

を与えるために、A1は、「オン」または「オフ」に設定賭けることができます。 A5:私はカテゴリとB5を入力する場合A100は:B100は、私はシートを入力するときに、ボタンが「オン」に設定され、データが既に解析さ以下(一例としてB5を使用して)

=IF($A$1="ON",Transpose(CustomFunction(A5)),"Button Off") 

を有しますB5:F5では、しばらくの間、私はすべてを再実行したかのように "Loading ..."を見るでしょう。これは触れ私なしで起こるもの

+0

私の知る限り、Googleスプレッドシートでは、カスタム関数がいつ再計算されるかについては確約はしていません。私があなたの立場にいたなら、私はこれをメニューコマンド "pull data"によって呼び出される関数として実装します。これにより、(a)起動時の完全な制御が可能になります。 (b)最新のデータは、スプレッドシートに常に残っていますが、「オフ」スイッチがあなたのケースに入ったときに消えるのではなく、消えてしまいます。 –

答えて

1

は、カスタム関数ができます

  • は21600秒(6時間)の最大値まで、非常に長い時間の有効期限とCache Serviceを使用してください。これは1日に数回も外線通話を行いますので、あなたが探しているものではありません。

  • Properties Serviceを使用して、取得した情報を保存します。固有のキーをパラメータとして渡すことができます(例: A1NotationのセルID。カスタム関数は、格納されている情報があればそれを返し、そうでなければ格納して格納します。

実際に一度しか実行されないものが必要な場合は、カスタム関数を使用しないでください。スープの提案によれば、メニュー駆動の機能がより適切なものになります。

関連する問題