スプレッドシートを強化する次のステップは、異なるスプレッドシート間でデータをリンクさせ、必要なデータまたはデータの範囲を取得し、まったく新しい場所に送信することです。ここでは、QUERY
関数とIMPORTRANGE
関数を使ったその方法を紹介します。
注意:他のスプレッドシートにデータをリンクする場合、数式を入力した後にセルをクリックして「アクセスを許可」しないと、データは表示されないので注意が必要です。
同じスプレッドシート内の他のシートからデータをリンクする
異なるスプレッドシート間でデータをインポートまたはリンクする問題に移る前に、同じスプレッドシート内の異なるシート間でデータをインポートする方法について簡単に説明します。
まず、インポートしたデータを表示させたいセルを選択し、「=」の後にリンクさせたいシート名とセルを入力します。='Sheet2'!A1
これで、最初のシートにデータが表示されるようになりました。
もし、列全体を引っ張ってきたいのであれば、以下のように入力することができます。={'Sheet2'!A1:A9} と入力します。
IMPORTRANGE を使ったデータリンクの方法
シート間でデータをリンクさせる最も基本的な方法は、IMPORTRANGE
関数を使用することです。以下は、IMPORTRANGE があるスプレッドシートから別のスプレッドシートへデータを転送する方法のシンタックスです。
=IMPORTRANGE("spreadsheet_key", "range_string")
スプレッドシートキー" は、指定されたスプレッドシートの URL に含まれる、数字と文字が混在した長いものです。
範囲文字列 “は、データを取得する正確なシートの名前(デフォルトでは “Sheet1”、“Sheet2 “などと呼ばれます)、"!"、データを取得するセルの範囲です。 以下は、データを取り出したいシートの例です。 と入力します。 このスプレッドシートから、セルA1とD100の間にデータを引っ張ってくることになります。そのための計算式は受信側のスプレッドシートに入力され、次のようになります。=ImportRange("1ByTut9xooZdPIBF55gzQ0Cdi04owDTtLVc_gPGtOKY0", "Sheet1!A1:D100")
これは、別のスプレッドシート、特にその中の「Sheet1」というシートからデータをインポートし、セルA1からD100までのすべてのデータを取り込みます。このように設定すると、ソースシートと同じようにデータが表示されるはずです。
QUERYを使用してより条件的にデータをインポートする
IMPORTRANGEはシート間で大量のデータを移動させるのに最適ですが、インポートするデータをより細かく指定したい場合は、おそらくQuery
関数が最適でしょう。これは、特定の単語や条件を設定すると、ソースシートを検索し、同じ行や列から対応するデータを取り込むことができます。
=QUERY( ImportRange( "1ByTut9xooZdPIBF55gzQ0Cdi04owDTtLVc_gPGtOKY0", "Sheet1!A1:O1000" ) , "select Col5 where Col2 = 'Germany'") )
。
ここでは、「ImportRange」データは前とまったく同じ構文ですが、「QUERY()」を前置きして、列2のデータが「ドイツ」となっている列5(「Units Sold」列)を選択するように指示しています。つまり、クエリには2つの「引数」、
ImportRangeと
select ColX where ColY = ‘Z’`があるのです。