2017-09-12 10 views
0

私はいくつかの情報をスプレッドシートに保存するためにfetchを使用するカスタム関数を持っています。問題は、スプレッドシートで何度も使用され、さまざまなページから取得されることを意味します。使用量が増加するにつれて、スプレッドシートが開くたびに不必要に情報を再フェッチすることはますます問題になります。スプレッドシートが開かれるたびにカスタム関数を再計算しないでください。

このデフォルト動作を回避する方法はありますか?パラメータがまったく同じであっても、セルが編集されるたびに再計算する必要があります。おそらく、手動編集と自動再計算のどちらにするのか、単にその動作を完全に無効にする方法があるのでしょうか?

+0

あなただけのカスタム関数を削除し、スクリプト関数にフックアップのonEditトリガーを経由して、あなたの計算とデータ収集を実行し、編集したセルに結果を返すことができます。 – Cooper

+0

@Cooperはい、私は過去にデータをフェッチするときにそのメソッドを使用しましたが、私はそれをカスタム関数として使用できるようにするメソッドを見つけることを望んでいました。 – Azk

答えて

1

手動による編集と自動再計算の区別はあるのでしょうか?

いいえ、いいえ。

可能な回避策の1つは、スプレッドシートの一部のセルに「スイッチ」を設けることです。たとえば、セルA1に「更新」がある場合、カスタム関数は通常は再計算されます。それ以外の場合は何もしません。そのセル(A1)は、状態を簡単に切り替えるためのドロップダウンによるデータ検証を持つことができます。 カスタム関数には、次のものが含まれるように修正されるだろう:

function customFunction(...) { 
    var currentStatus = SpreadsheetApp.getActiveSheet().getRange("A1").getValue(); 
    if (currentStatus != "Update") { 
    return; 
    } 
    // the rest of function 
関連する問題