回答:
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を使用するには、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の「クロスワークブック参照式(Googleサポート)(h / t Jacob Jan Tuinstra)」という50の制限を削除します
「新しい」Googleスプレッドシートでは、URL全体をキーとして使用します(Googleサポート)(h / t Punchlinern)
新しいインターフェイスで=
は、セルに入力するだけで、他のシートに移動して目的のセルを選択できます。手動で行う場合、または古いインターフェイスを使用している場合は、単に行うことができます=Sheet1!A1
。ここSheet1
で、はシートの名前で、A1
気になるシート上のセルです。これはMicrosoft Excelと同じです。
Insert-> Define new rangeを使用してこの構文を見つけました
A列全体:「名前にスペースを含むスプレッドシート」!
B列全体:「名前にスペースを含むスプレッドシート」!B:B
等
その後、次のように使用できます。
=COUNTIF('First Page'!B:B, "valueToMatch")
IMPORTRANGE
関数は別のスプレッドシートからデータをインポートできます。範囲の設定は、スプレッドシート内でのみ可能です。それが私が外で意味したことです。
IMPORTRANGE
ジェイコブが言ったように@brendan使用。
ここに私がそれをした方法があります(「importrange()」を再実装しました):
関数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」パラメーターにあります。
「スプレッドシートサービス」のドキュメントには、トピックに関する詳細情報が記載されています。
SpreadsheetApp.openById()
かSpreadsheetApp.openByUrl()
- > developers.google.com/apps-script/guides/sheets/...
クエリを使用して非常に簡単な方法で行いました。たとえば、ABCとXYZの2つのシートがあり、A1からC30までの範囲をAbcからXYZにインポートし、範囲を表示するセルをクリックして、これを記述します:
=QUERY(ABC!A1:C30)
注:シート名にスペースが含まれている場合、もちろん次のように記述します。
=QUERY('ABC 1'!A1:C30)
QUERY
?
importrange("abcd123abcd123", "sheet1!A1:C10")
例えば、=query(importrange("abcd123abcd123", "sheet1!A1:C10"))
;-)