前月の数値に依存する毎月のスプレッドシートがあります。これらの値をカットアンドペーストするのではなく、動的にインポートしたいと思います。これは可能ですか?どうすればいいのですか?
IMPORTRANGE()
は、必要な関数のようです。
Googleスプレッドシートでは、ImportRange関数を使用して、現在編集中のスプレッドシート内の別のワークブックを参照できます。 ImportRangeを使用すると、1つ以上のセル値を1つのスプレッドシートから別のスプレッドシートにプルできます。独自のImportRange数式を作成するには、= importRange(spreadsheet-key、range)と入力します。 10進数の区切りにコンマが使用されている言語では、コンマの代わりにセミコロンを使用して、式の引数を区切ります。
Spreadsheet-keyは、スプレッドシートURLのキー値であるSTRINGです。
範囲は、インポートするセルの範囲を表すSTRINGであり、オプションでシート名を含みます(デフォルトは最初のシートです)。必要に応じて範囲名を使用することもできます。
2つの引数が文字列である場合、それらを引用符で囲むか、文字列値を含むセルを参照する必要があります。
例えば:
= importrange( "abcd123abcd123"、 "sheet1!A1:C10") "abcd123abcd123"はターゲットスプレッドシートのURLの "key ="属性の値であり、 "sheet1!A1:C10"は希望する範囲です。インポートされます。
= importrange(A1、B1)セルA1には文字列ABCD123ABCD123が含まれ、セルB1にはsheet1!A1:C10が含まれます
注:ImportRangeを使用するには、Viewerまたは共同作業者として、ImportRangeがデータをプルするスプレッドシートに追加されている必要があります。それ以外の場合は、「#REF!エラー:要求されたスプレッドシートキー、シートタイトル、またはセル範囲が見つかりませんでした」というエラーが表示されます。
「キー」は、もちろん、key=
パラメータに一致するスプレッドシートのURL内の文字列です。
2つのスプレッドシートを作成してテストしました。最初のセルA1に文字列を入れます。 2番目のセルA1に=importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")
と入力すると、最初のスプレッドシートの文字列が表示されました。 (キーは明らかに異なります。)
(関数の形式はロケールによって異なる場合があります。フランスでは、式はカンマでは無効であるため、セミコロン=importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1")
に置き換える必要があります)
注:
Googleは現在、スプレッドシートごとに50の「クロスブック参照式」という厳しい制限を設定しています。出典: Googleドキュメント、スプレッドシート、スライドのサイズ制限 。 (h/t JJ Rohrer )
「新しい」Googleスプレッドシート(間もなく標準になります)により、50の「クロスブック参照式」の50の制限が削除されます( Googleサポート )(h/t- ヤコブヤントゥインストラ )
「新しい」Googleスプレッドシートでは、URL全体をキーとしても使用します( Google Support )(h/t Punchlinern )
参考までに、他のスプレッドシート内の別のシートを参照する場合は、シート名を再引用しないでください。
つかいます
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")
の代わりに
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")
新しいインターフェイスでは、セルに=
と入力するだけで、他のシートに移動して目的のセルを選択できます。手動で行う場合、または古いインターフェイスを使用している場合は、=Sheet1!A1
を実行できます。ここで、Sheet1
はシートの名前で、A1
はそのシートのセルです。気になります。これはMicrosoft Excelと同じです。
Insert-> Define new rangeを使用してこの構文を見つけました
A列全体:「名前にスペースを含むスプレッドシート」!
B列全体:「名前にスペースを含むスプレッドシート」!B:B
等.
その後、次のように使用できます。
=COUNTIF('First Page'!B:B, "valueToMatch")
ここに私がそれをした方法があります(「importrange()」を再実装しました):
function REMOTEDATA(inKey、inRange){ var outData; var ss = SpreadsheetApp.openById(inKey); if(ss){ outData = ss.getRange(inRange).getValues(); } return outData; }
= SUM(REMOTEDATA( "key"、 "SheetName!A1:A10"))
「key」はドキュメントのキーです。ドキュメントURLの「key = xyz」パラメーターにあります。
' spreadsheet services 'のドキュメントに、トピックに関する詳細情報が記載されています。