GoogleスプレッドシートのIMPORTRANGE関数を使用して、spreadsheet1
のデータを参照し、spreadsheet2
に表示しています。これは正常に機能しますが、spreadsheet1
を編集してからspreadsheet2
に移動すると、自動的に更新されず、ページを更新しても更新されません。キャッシュを0MBに制限するように設定したので、ローカルには何も保存されません。
マスタースプレッドシートをより頻繁にチェックバックし、それに応じて値を更新する方法はありますか?
IMPORTRANGE
を使用する代わりに、 Google Apps Script を使用します
スプレッドシートのロケール、タイムゾーン、再計算、言語の変更 によると、IMPORTRANGE
の再計算間隔は30分です。より短い再計算間隔が必要な場合は、何らかの方法で数式パラメーターを変更する必要があります。
残念ながら、新しいGoogleスプレッドシートでは、NOW
、Rand
、またはRANDBETWEEN
関数を使用することはできないため、代わりにGoogle Appsスクリプトを使用します。
Jacob Jan Tuinstraによる comment で提供されているスレッドでは、特定の間隔で更新される追加のURLパラメーターの使用に言及しています。そのスレッドは2011年のものです。
核となるアイデアは、URLに"&workaround="&NOW()
のようなものを追加し、再計算設定をon change and every minute
に設定することでしたが、インポートタスクに1分以上かかる可能性があるため、NOW()
ではなく、十分な間隔、たとえば10分とすると、代わりにNOW()
を使用します
INT(NOW()/TIME(0;10;0))
この式にtime_interval
という名前を付けます。
IMPORTRANGE
を含むセル数式は次のようになります
=IMPORTRANGE(
"https://docs.google.com/spreadsheets/d/spredsheet_key&workaround="&time_interval,
"Sheet1!A1:AB"
)
残念ながら、上記の式は次のエラーを返します
エラー
この関数は、NOW()、Rand()、またはRANDBETWEEN()を使用してセルを参照することはできません
他のインポート関数でも同じことが起こります(IMPORTDATA
、IMPORTHTML
、IMPORTFEED
、IMPORTXML
)