問題タブ [importrange]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5512 参照

google-sheets - IMPORTRANGE を特定の間隔で強制的に更新する

Google スプレッドシートで IMPORTRANGE を介してデータを更新するのが遅れているという不満をいくつか見ましたが、反対のことが必要で、2 番目のシートが自動的に更新されるのは望ましくありません。たとえば、1 日の終わりに更新するだけです。

コードはすでに次のようになっています。

0 投票する
1 に答える
893 参照

google-sheets - Spreadsheet_key の配列で IMPORTRANGE() を使用する

IMPORTRANGE() を使用していくつかのスプレッドシートからデータをインポートしようとしていますが、すべての Spreadsheet_key をインラインにすると、読むのが面倒になり、新しいキーを追加するのが面倒になります。次のようなリストから、spreadsheet_keys をロードしようとしています。

whereSettings!A30はキーをSettings!A31保持し、2 番目のキーを保持します。

エラーは発生しませんが、最初のスプレッドシートからのみデータが読み込まれます!

これを機能させる方法はありますか?

0 投票する
5 に答える
7342 参照

google-apps-script - Google スプレッドシートにインポートされたすべての要素へのアクセスを即座に許可するアプリ スクリプトを作成するにはどうすればよいですか?

Googleスプレッドシートで作業する必要があります。他のスプレッドシートへのリンクが多数含まれているテンプレート スプレッドシートをいくつか使用しています。問題は、ほとんどのリンク (importrange 関数で作成されたもの) を使用するためにテンプレート スプレッドシートのコピーを作成するたびに、再度アクセスを許可する必要があることです。 ここに画像の説明を入力

私がやりたいのは、すべてのリンクを一度にインポートできるスクリプトを作成することです。アプリスクリプトを作成しようとしましたが、スクリプトを作成できるように「アクセスを許可」ボタンでテキストボックスにアクセスする方法が見つかりません。私の質問は次のとおりです。「アクセスを許可する」ボタンにプログラムでアクセスする方法はありますか? または、私の問題を解決し、すべてのリンクに一度にアクセスできるようにする他の方法はありますか?

0 投票する
2 に答える
2717 参照

google-sheets - IMPORTRANGE によるデータ削減

次の IMPORTRANGE 式を使用して、Google スプレッドシートでデータ削減を試みています。

「ソース」シートには、大量の販売データ レコードがあります。この数式を使用して新しいシートでやろうとしているのは、セル B1 で指定された顧客番号と一致するソース シートからの販売レコードのみを取り込むことです。

IMPORTRANGE を約 10,000 行のみに制限すると、問題なく動作するようです。約 20,000 行を超えると、画面が一時的にレコードをフラッシュし、シートの右上隅に小さな進行状況バーが表示され、レコードが消えます。数式を含むセルは、#ERROR!理由を説明する他のコメントなしで表示されます。

数式の構文に何か問題がありますか?

このデータ削減を達成するためのより良い方法はありますか?

IMPORTRANGE 関数に文書化されていないデータ制限がありますか (「新しい」Google スプレッドシートを使用しています)?

0 投票する
5 に答える
22265 参照

google-apps-script - IMPORTRANGE 関数が、リンクされた Google シートの新しいエントリを更新しない

リンクされたスプレッドシートが追加されると、IMPORTRANGE 関数が新しいデータで更新されません。代わりに、新しい情報を表示するたびに、すべての数式をカット アンド ペーストする必要があります。

私は新しいバージョンの Google スプレッドシートを使用していますが、これのリリース時に IMPORTRANGE 関数でいくつかの問題があったことを知っています。

現在、24 列のデータをインポートしていますが、元のスプレッドシートはフォームにリンクされているため、拡大し続けます。これが IMPORTRANGE を使用している主な理由です。元のスプレッドシートを最高速度で動作させ続けるのに役立つからです。

私が知りたいのは、他の誰かがこのような問題を抱えていますか?もしそうなら、回避策はありますか(アプリスクリプト/別の機能で)? 最悪の場合、新しいエントリが作成されるたびにすべての列を更新するのは本当に面倒なので、スプレッドシートをクリアし、開いたときやメニューのクリック時にすべての数式を再入力するアプリ スクリプトはありますか。

編集 -インポートしようとしているほとんどすべてのセルは、元のスプレッドシート内で定式化されており、何かが変更された場合- 編集

0 投票する
2 に答える
6391 参照

google-apps-script - #N/A を返さずに VLOOKUP 数式を含む IMPORTRANGE を使用して、さまざまな Google スプレッドシートをリンクする方法は?

問題:

を使用IMPORTRANGEして別のスプレッドシートからデータを取得する場合、VLOOKUP を含む数式を含む元のスプレッドシートのセルは、多くの場合 (常にではありません) を返し#N/A (ERROR: Did not find value 'xxx' in VLOOKUP evaluation)ます。元のシートでは、数式は正しく計算され、値が表示されます。これは常に発生するとは限りません。適切な値が引き込まれる場合もあります。

意図:

異なるスプレッドシートからデータを取得するには、それらを別のスプレッドシートに結合し、計算を行います。次に、この計算スプレッドシート (または複数の計算スプレッドシート) からレポート スプレッドシートに情報を引き出して、さらに計算と書式設定を行います。

セットアップ:

dataspreadsheet1dataspreadsheet2および など、いくつかのソース データ スプレッドシートがありdataspreadsheet3ます。計算スプレッドシート ( calcspreadsheet) が作成され、各データ スプレッドシートに のコピーが作成され、これらのシートにそれぞれおよびsheet1という名前が付けられます。これに使用されるステートメントは次のように作成されます。where は、それぞれの列に名前、タイプ、および ID を含むシートです。datasheet1datasheet2datasheet3IMPORTRANGEimportrange(+VLOOKUP("dataspreadsheet1",filelist!A1:C1000,3,FALSE),"sheet1!a1:Z1000")filelist!A1:C1000calcspreadsheet

これらの各シートの値は、別のシートでのdatasheet1-3計算に使用されます。これの主な目的は 3 からの毎日の値を合計することですが、それらすべてが同じ行に同じデータを持っているわけではありません。行番号。たとえば、列 A はすべてのシートの日付列です。calcsheet1calcspreadsheetdataspreadsheetssourcesheetsVLOOKUPdatasheet1-3VLOOKUP($A11,'datasheet1'!$A:$P,4) + VLOOKUP($A11,'datasheet2'!$A:$P,4) + VLOOKUP($A11,'datasheet3'!$A:$P,4)

これは正常に動作しているように見えますが、開くcalcspreadsheetと更新に時間がかかり、その間に多く#N/Aの が表示されます。最終的には正しくなります。

問題は、reportspreadsheetが作成され、その情報を操作できるようにするためにIMPORTRANGE呼び出しを使用して情報を取得するときに発生します。calcsheet1これにより、常にではありませんが、多くの場合、最初は問題のある状態になります。このIMPORTRANGE呼び出しは、 の場合reportspreadsheetと同様の方法で生成されますcalcspreadsheet:ソース スプレッドシートの名前=importrange(+VLOOKUP(calc!B1,sheetcodes!A1:C3000,3,FALSE),"sheet1!a1:Z1000")が含まれます (この場合は「calcspreadsheet」となり、それぞれの列に ,を含むシートのリストが含まれます)。calc!B1calcsheetcodes!A1:C3000NameTypeId

私が試した回避策:

IMPORTRANGEを含まないセルの方がうまく機能することに気付いたので、 の内容を の別のシートにVLOOKUPコピーしようとしましたが、式ではなく、そこに値のみがあり、これで使用しました。使用するコピー スクリプトは次のとおりです。calcsheetcalcspreadsheetexportsheetIMPORTRANGEexportsheet

これは機能しているように見えましたが、残念ながら、calcsheet の値を exportsheet にコピーするために使用されたコピー スクリプトは同じ動作を示しました#N/A

私の質問:

この機能が気まぐれである、またはバグがあると述べた、同様の問題と応答に関するさまざまな投稿を読みました。で動的参照を使用することはできないと他の人は述べていますIMPORTRANGE。機能する場合と機能しない場合があることを考えると、機能自体は正しいと思われますが、セットアップに同期またはタイムアウトの問題があると思われます。

上記の機能を設定するにはどうすればよいですか。いくつかの変更/追加を使用しIMPORTRANGEたりVLOOKUP、まったく使用したり、最初から別の方法で構築したりします。

0 投票する
1 に答える
353 参照

google-sheets - IMPORTRANGE を使用した数式のインポート

IMPORTRANGE を使用して異なるシートを同期していますが、関数はセル値のみをインポートし、基になる数式はインポートしないようです。

手伝ってくれますか?

0 投票する
5 に答える
21670 参照

javascript - アプリスクリプトを介して importrange 関数へのアクセスを許可するには?

importrange 関数を手動でスプレッドシートに入力すると、ポップアップが表示され、「アクセスを許可」する必要があります。importrange へのアクセスを許可するポップアップ

ただし、スクリプトを使用してこれを行う方法を見つけようとしています。それぞれに query-importrange 関数を使用して多くのスプレッドシートを作成しているためです (インポートするデータがあるスプレッドシートを「所有」しています)。ポップアップを介して手動で「アクセスを許可」し、関数を更新してクエリ関数を含めるには多すぎます。

したがって、ポップアップと同じアクションを実行できるアプリスクリプトで関数呼び出しを探しています。以下のコード セグメントの例。

「アクセスを許可」できる機能を知っている人はいますか? ステファン