インポートされたデータは、スプレッドシートをロードしたときに、常にソースページの最新のものではありません。これが発生すると、F5更新は役に立ちません。 Ctl-F5も同様です。どうやら何らかのキャッシュが行われているようです。
スプレッドシートを積極的に変更しているときなど、頻繁に更新しようとすると、URLフェッチが制限される可能性があると考えています。
ドキュメントリファレンス: http://docs.google.com/support/bin/answer.py?answer=75507
このように Googleドキュメントフォーラムスレッド 、データは約1時間ごとに更新する必要があります
そのスレッドでは、投稿者は、スクレイピングするURLにランダムなクエリ文字列を追加することを提案しています-
毎分更新されるパラメーターを追加するという簡単な回避策を使用しました。
関数呼び出し:= ImportHtml( "http://www.fifa.com/worldcup/standings/index.html?"&H81; "table"; 4)
H81の式は次のとおりです。= Minute(Now())
これは私のためのトリックを行います。
あなたは正しい、インポート関数は特定の間隔で結果を更新します。
スプレッドシートのロケール、タイムゾーン、再計算、言語の変更 、公式ドキュメントのヘルプ記事、
注:外部データ関数は、次の間隔で再計算されます。
- インポート範囲:30分
- ImportHtml、ImportFeed、ImportData、ImportXml:1時間
- GoogleFinance:2分
数式が引数の変更時に再計算されるため、これを使用してインポートされたデータを強制的に更新することができます。
インポート関数を使用して式の再計算を強制する1つの方法は、URLに確定的だが無害なパラメーターを連結することです。
次の例では、「#rev = "&A2が元のURLに追加されます
A1:https://en.wikipedia.org/wiki/List_of_gravitationally_rounded_objects_of_the_Solar_System
A2:1
A3:4
A4:=IMPORTHTML(A1&"#rev="&A2,"table",A3)
値またはA1、A2、またはA3のいずれかが変更されるたびに、数式が再計算されます。 A2の値を変更して、A1のURLからテーブル4の更新を「強制」することができます。
インポート関数のカスタム更新間隔を設定するには、時間駆動のトリガースクリプトを使用して、確定的だが無害なURLパラメーターを更新します。
/**
*
* Updates at the interval set in the time driven trigger configuration
* a cell value to be used as a deterministic bu unnicouus URL parameter
*
*/
function forceRefresh() {
//Cell addrees of the deterministic but unnicouos URL parameter
var reference = 'Sheet1!A2';
var rng = SpreadsheetApp.getActiveSpreadsheet().getRange(reference);
rng.setValue(rng.getValue()+1);
}
リンクの変更に依存しない別の選択肢:
= if(Minute(Now())= Minute(Now())、ImportHtml( " http://www.fifa.com/worldcup/standings/index.html ?"; "table" ; 4)、 "")
Minute(Now())=Minute(Now())
は常にtrueであるため、ifは常にImportHtmlを返します